66void p2unsigned (unsigned * * ptr ) {
77 // COMMON-LABEL: define void @p2unsigned(
88 // 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
1110 // ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0:!.+]]
1211 // ENABLED-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0]]
1312 // ENABLED-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[P1INT_0:!.+]]
1413 // DEFAULT-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR:!.+]]
1514 // DEFAULT-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
1615 // DEFAULT-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[ANYPTR]]
17- // COMMON-NEXT: ret void
16+ // COMMON-NEXT: ret void
1817 //
1918 * ptr = 0 ;
2019}
2120
2221void p2unsigned_volatile (unsigned * volatile * ptr ) {
2322 // COMMON-LABEL: define void @p2unsigned_volatile(
2423 // 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
2725 // ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0]]
2826 // ENABLED-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P2INT_0]]
2927 // ENABLED-NEXT: store volatile ptr null, ptr [[BASE]], align 8, !tbaa [[P1INT_0]]
3028 // DEFAULT-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
3129 // DEFAULT-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
3230 // DEFAULT-NEXT: store volatile ptr null, ptr [[BASE]], align 8, !tbaa [[ANYPTR]]
33- // COMMON-NEXT: ret void
31+ // COMMON-NEXT: ret void
3432 //
3533 * ptr = 0 ;
3634}
3735
3836void p3int (int * * * ptr ) {
3937 // COMMON-LABEL: define void @p3int(
4038 // 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
4340 // ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P3INT_0:!.+]]
4441 // ENABLED-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P3INT_0]]
4542 // ENABLED-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[P2INT_0]]
@@ -48,17 +45,15 @@ void p3int(int ***ptr) {
4845 // DEFAULT-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
4946 // DEFAULT-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[ANYPTR]]
5047 // DEFAULT-NEXT: store ptr null, ptr [[BASE_1]], align 8, !tbaa [[ANYPTR]]
51-
52- // COMMON-NEXT: ret void
48+ // COMMON-NEXT: ret void
5349 //
5450 * * ptr = 0 ;
5551}
5652
5753void p4char (char * * * * ptr ) {
5854 // COMMON-LABEL: define void @p4char(
5955 // 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
6257 // ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0:!.+]]
6358 // ENABLED-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0]]
6459 // ENABLED-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[P3CHAR_0:!.+]]
@@ -69,16 +64,15 @@ void p4char(char ****ptr) {
6964 // DEFAULT-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[ANYPTR]]
7065 // DEFAULT-NEXT: [[BASE_2:%.+]] = load ptr, ptr [[BASE_1]], align 8, !tbaa [[ANYPTR]]
7166 // DEFAULT-NEXT: store ptr null, ptr [[BASE_2]], align 8, !tbaa [[ANYPTR]]
72- // COMMON-NEXT: ret void
67+ // COMMON-NEXT: ret void
7368 //
7469 * * * ptr = 0 ;
7570}
7671
7772void p4char_const1 (const char * * * * ptr ) {
7873 // COMMON-LABEL: define void @p4char_const1(
7974 // 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
8276 // ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0]]
8377 // ENABLED-NEXT: [[BASE_0:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P4CHAR_0]]
8478 // 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) {
109103 // DEFAULT-NEXT: [[BASE_1:%.+]] = load ptr, ptr [[BASE_0]], align 8, !tbaa [[ANYPTR]]
110104 // DEFAULT-NEXT: [[BASE_2:%.+]] = load ptr, ptr [[BASE_1]], align 8, !tbaa [[ANYPTR]]
111105 // DEFAULT-NEXT: store ptr null, ptr [[BASE_2]], align 8, !tbaa [[ANYPTR]]
112- // COMMON-NEXT: ret void
106+ // COMMON-NEXT: ret void
113107 //
114108 * * * ptr = 0 ;
115109}
@@ -122,15 +116,14 @@ struct S1 {
122116void p2struct (struct S1 * * ptr ) {
123117 // COMMON-LABEL: define void @p2struct(
124118 // 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
127120 // ENABLED-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[P2S1_0:!.+]]
128121 // ENABLED-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[P2S1_0]]
129122 // ENABLED-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[P1S1_:!.+]]
130123 // DEFAULT-NEXT: store ptr [[PTR]], ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
131124 // DEFAULT-NEXT: [[BASE:%.+]] = load ptr, ptr [[PTR_ADDR]], align 8, !tbaa [[ANYPTR]]
132125 // DEFAULT-NEXT: store ptr null, ptr [[BASE]], align 8, !tbaa [[ANYPTR]]
133- // COMMON-NEXT: ret void
126+ // COMMON-NEXT: ret void
134127 //
135128 * ptr = 0 ;
136129}
0 commit comments