@@ -17,7 +17,7 @@ struct Empty {};
17
17
18
18
// CHECK: define{{.*}} i32 @empty_arg(i32 noundef %a)
19
19
// CHECK-GNU-C: define{{.*}} i32 @empty_arg(i32 noundef %a)
20
- // CHECK-GNU-CXX: define{{.*}} i32 @empty_arg(i8 %e.coerce, i32 noundef %a)
20
+ // CHECK-GNU-CXX: define{{.*}} i32 @empty_arg(i64 %e.coerce, i32 noundef %a)
21
21
EXTERNC int empty_arg (struct Empty e, int a) {
22
22
return a;
23
23
}
@@ -53,7 +53,7 @@ struct SortOfEmpty {
53
53
54
54
// CHECK: define{{.*}} i32 @sort_of_empty_arg(i32 noundef %a)
55
55
// CHECK-GNU-C: define{{.*}} i32 @sort_of_empty_arg(i32 noundef %a)
56
- // CHECK-GNU-CXX: define{{.*}} i32 @sort_of_empty_arg(i8 %e.coerce, i32 noundef %a)
56
+ // CHECK-GNU-CXX: define{{.*}} i32 @sort_of_empty_arg(i64 %e.coerce, i32 noundef %a)
57
57
EXTERNC int sort_of_empty_arg (struct Empty e, int a) {
58
58
return a;
59
59
}
@@ -65,3 +65,22 @@ EXTERNC struct SortOfEmpty sort_of_empty_ret(void) {
65
65
struct SortOfEmpty e;
66
66
return e;
67
67
}
68
+
69
+ // CHECK-GNU-CXX: define{{.*}} i32 @empty_align8_arg(i64 %a.coerce, i32 noundef %b)
70
+ struct EmptyAlign8 { int __attribute__ ((aligned(8 ))) : 0; };
71
+ EXTERNC int empty_align8_arg (struct EmptyAlign8 a, int b) {
72
+ return b;
73
+ }
74
+
75
+ // CHECK-GNU-CXX: define{{.*}} i32 @empty_align16_arg(i128 %a.coerce, i32 noundef %b)
76
+ struct EmptyAlign16 { long long int __attribute__ ((aligned(16 ))) : 0; };
77
+ EXTERNC int empty_align16_arg (struct EmptyAlign16 a, int b) {
78
+ return b;
79
+ }
80
+
81
+ // CHECK-GNU-CXX: define{{.*}} i32 @empty_align32_arg(ptr noundef %a, i32 noundef %b)
82
+ struct EmptyAlign32 { long long int __attribute__ ((aligned(32 ))) : 0; };
83
+ EXTERNC int empty_align32_arg (struct EmptyAlign32 a, int b) {
84
+ return b;
85
+ }
86
+
0 commit comments