6
6
void p2unsigned (unsigned * * ptr ) {
7
7
// COMMON-LABEL: define void @p2unsigned(
8
8
// COMMON-SAME: ptr noundef [[PTR:%.+]])
9
- // COMMON-NEXT: entry:
10
- // COMMON-NEXT: [[PTR_ADDR:%.+]] = alloca ptr, align 8
9
+ // COMMON: [[PTR_ADDR:%.+]] = alloca ptr, align 8
11
10
// ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0:!.+]]
12
11
// ENABLED-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0]]
13
12
// ENABLED-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[P1INT_0:!.+]]
14
13
// DEFAULT-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR:!.+]]
15
14
// DEFAULT-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
16
15
// DEFAULT-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[ANYPTR]]
17
- // COMMON-NEXT: ret void
16
+ // COMMON-NEXT: ret void
18
17
//
19
18
* ptr = 0 ;
20
19
}
21
20
22
21
void p2unsigned_volatile (unsigned * volatile * ptr ) {
23
22
// COMMON-LABEL: define void @p2unsigned_volatile(
24
23
// COMMON-SAME: ptr noundef [[PTR:%.+]])
25
- // COMMON-NEXT: entry:
26
- // COMMON-NEXT: [[PTR_ADDR:%.+]] = alloca ptr, align 8
24
+ // COMMON: [[PTR_ADDR:%.+]] = alloca ptr, align 8
27
25
// ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0]]
28
26
// ENABLED-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0]]
29
27
// ENABLED-NEXT: store volatile ptr null, ptr [[BASE]], align 8, !tbaa [[P1INT_0]]
30
28
// DEFAULT-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
31
29
// DEFAULT-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
32
30
// DEFAULT-NEXT: store volatile ptr null, ptr [[BASE]], align 8, !tbaa [[ANYPTR]]
33
- // COMMON-NEXT: ret void
31
+ // COMMON-NEXT: ret void
34
32
//
35
33
* ptr = 0 ;
36
34
}
37
35
38
36
void p3int (int * * * ptr ) {
39
37
// COMMON-LABEL: define void @p3int(
40
38
// COMMON-SAME: ptr noundef [[PTR:%.+]])
41
- // COMMON-NEXT: entry:
42
- // COMMON-NEXT: [[PTR_ADDR:%.+]] = alloca ptr, align 8
39
+ // COMMON: [[PTR_ADDR:%.+]] = alloca ptr, align 8
43
40
// ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P3INT_0:!.+]]
44
41
// ENABLED-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P3INT_0]]
45
42
// ENABLED-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[P2INT_0]]
@@ -48,17 +45,15 @@ void p3int(int ***ptr) {
48
45
// DEFAULT-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
49
46
// DEFAULT-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[ANYPTR]]
50
47
// DEFAULT-NEXT: store ptr null, ptr [[BASE_1]], align 8, !tbaa [[ANYPTR]]
51
-
52
- // COMMON-NEXT: ret void
48
+ // COMMON-NEXT: ret void
53
49
//
54
50
* * ptr = 0 ;
55
51
}
56
52
57
53
void p4char (char * * * * ptr ) {
58
54
// COMMON-LABEL: define void @p4char(
59
55
// COMMON-SAME: ptr noundef [[PTR:%.+]])
60
- // COMMON-NEXT: entry:
61
- // COMMON-NEXT: [[PTR_ADDR:%.+]] = alloca ptr, align 8
56
+ // COMMON: [[PTR_ADDR:%.+]] = alloca ptr, align 8
62
57
// ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0:!.+]]
63
58
// ENABLED-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0]]
64
59
// ENABLED-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[P3CHAR_0:!.+]]
@@ -69,16 +64,15 @@ void p4char(char ****ptr) {
69
64
// DEFAULT-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[ANYPTR]]
70
65
// DEFAULT-NEXT: [[BASE_2:%.+]] = load ptr, ptr [[BASE_1]], align 8, !tbaa [[ANYPTR]]
71
66
// DEFAULT-NEXT: store ptr null, ptr [[BASE_2]], align 8, !tbaa [[ANYPTR]]
72
- // COMMON-NEXT: ret void
67
+ // COMMON-NEXT: ret void
73
68
//
74
69
* * * ptr = 0 ;
75
70
}
76
71
77
72
void p4char_const1 (const char * * * * ptr ) {
78
73
// COMMON-LABEL: define void @p4char_const1(
79
74
// COMMON-SAME: ptr noundef [[PTR:%.+]])
80
- // COMMON-NEXT: entry:
81
- // COMMON-NEXT: [[PTR_ADDR:%.+]] = alloca ptr, align 8
75
+ // COMMON: [[PTR_ADDR:%.+]] = alloca ptr, align 8
82
76
// ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0]]
83
77
// ENABLED-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0]]
84
78
// ENABLED-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[P3CHAR_0]]
@@ -109,7 +103,7 @@ void p4char_const2(const char **const **ptr) {
109
103
// DEFAULT-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[ANYPTR]]
110
104
// DEFAULT-NEXT: [[BASE_2:%.+]] = load ptr, ptr [[BASE_1]], align 8, !tbaa [[ANYPTR]]
111
105
// DEFAULT-NEXT: store ptr null, ptr [[BASE_2]], align 8, !tbaa [[ANYPTR]]
112
- // COMMON-NEXT: ret void
106
+ // COMMON-NEXT: ret void
113
107
//
114
108
* * * ptr = 0 ;
115
109
}
@@ -122,15 +116,14 @@ struct S1 {
122
116
void p2struct (struct S1 * * ptr ) {
123
117
// COMMON-LABEL: define void @p2struct(
124
118
// COMMON-SAME: ptr noundef [[PTR:%.+]])
125
- // COMMON-NEXT: entry:
126
- // COMMON-NEXT: [[PTR_ADDR:%.+]] = alloca ptr, align 8
119
+ // COMMON: [[PTR_ADDR:%.+]] = alloca ptr, align 8
127
120
// ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P2S1_0:!.+]]
128
121
// ENABLED-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P2S1_0]]
129
122
// ENABLED-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[P1S1_:!.+]]
130
123
// DEFAULT-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
131
124
// DEFAULT-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
132
125
// DEFAULT-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[ANYPTR]]
133
- // COMMON-NEXT: ret void
126
+ // COMMON-NEXT: ret void
134
127
//
135
128
* ptr = 0 ;
136
129
}
0 commit comments