11// RUN: %clang_cc1 -triple armv7a-linux-gnueabi -emit-llvm -o - -x c %s | FileCheck %s --check-prefixes=CHECK,C
22// RUN: %clang_cc1 -triple armv7a-linux-gnueabi -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,CXX
3- // RUN: %clang_cc1 -triple armv7a-linux-gnueabi -emit-llvm -o - %s -fclang-abi-compat=20 | FileCheck %s --check-prefixes=CHECK,CXXCLANG20
3+ // RUN: %clang_cc1 -triple armv7a-linux-gnueabi -emit-llvm -o - %s -fclang-abi-compat=19 | FileCheck %s --check-prefixes=CHECK,CXXCLANG19
44// RUN: %clang_cc1 -triple thumbv7k-apple-watchos2.0 -target-abi aapcs16 -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,WATCHOS
55
66// Empty structs are ignored for PCS purposes on WatchOS and in C mode
@@ -18,15 +18,15 @@ struct Empty {};
1818
1919// C: define{{.*}} i32 @empty_arg(i32 noundef %a)
2020// CXX: define{{.*}} i32 @empty_arg(i8 %e.coerce, i32 noundef %a)
21- // CXXCLANG20 : define{{.*}} i32 @empty_arg(i32 noundef %a)
21+ // CXXCLANG19 : define{{.*}} i32 @empty_arg(i32 noundef %a)
2222// WATCHOS: define{{.*}} i32 @empty_arg(i32 noundef %a)
2323EXTERNC int empty_arg (struct Empty e, int a) {
2424 return a;
2525}
2626
2727// C: define{{.*}} void @empty_ret()
2828// CXX: define{{.*}} void @empty_ret()
29- // CXXCLANG20 : define{{.*}} void @empty_ret()
29+ // CXXCLANG19 : define{{.*}} void @empty_ret()
3030// WATCHOS: define{{.*}} void @empty_ret()
3131EXTERNC struct Empty empty_ret (void ) {
3232 struct Empty e;
@@ -43,7 +43,7 @@ struct SuperEmpty {
4343
4444// C: define{{.*}} i32 @super_empty_arg(i32 noundef %a)
4545// CXX: define{{.*}} i32 @super_empty_arg(i32 noundef %a)
46- // CXXCLANG20 : define{{.*}} i32 @super_empty_arg(i32 noundef %a)
46+ // CXXCLANG19 : define{{.*}} i32 @super_empty_arg(i32 noundef %a)
4747// WATCHOS: define{{.*}} i32 @super_empty_arg(i32 noundef %a)
4848EXTERNC int super_empty_arg (struct SuperEmpty e, int a) {
4949 return a;
@@ -55,15 +55,15 @@ struct SortOfEmpty {
5555
5656// C: define{{.*}} i32 @sort_of_empty_arg(i32 noundef %a)
5757// CXX: define{{.*}} i32 @sort_of_empty_arg(i8 %e.coerce, i32 noundef %a)
58- // CXXCLANG20 : define{{.*}} i32 @sort_of_empty_arg(i32 noundef %a)
58+ // CXXCLANG19 : define{{.*}} i32 @sort_of_empty_arg(i32 noundef %a)
5959// WATCHOS: define{{.*}} i32 @sort_of_empty_arg(i32 noundef %a)
6060EXTERNC int sort_of_empty_arg (struct Empty e, int a) {
6161 return a;
6262}
6363
6464// C: define{{.*}} void @sort_of_empty_ret()
6565// CXX: define{{.*}} void @sort_of_empty_ret()
66- // CXXCLANG20 : define{{.*}} void @sort_of_empty_ret()
66+ // CXXCLANG19 : define{{.*}} void @sort_of_empty_ret()
6767// WATCHOS: define{{.*}} void @sort_of_empty_ret()
6868EXTERNC struct SortOfEmpty sort_of_empty_ret (void ) {
6969 struct SortOfEmpty e;
@@ -82,8 +82,8 @@ EXTERNC int empty_arg_variadic(int a, ...) {
8282// C-NOT: {{ getelementptr }}
8383// CXX: %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
8484// CXX: %argp.next2 = getelementptr inbounds i8, ptr %argp.cur1, i32 4
85- // CXXCLANG20 : %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
86- // CXXCLANG20 -NOT: {{ getelementptr }}
85+ // CXXCLANG19 : %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
86+ // CXXCLANG19 -NOT: {{ getelementptr }}
8787// WATCHOS: %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
8888// WATCHOS-NOT: {{ getelementptr }}
8989 va_list vl;
@@ -100,8 +100,8 @@ EXTERNC int super_empty_arg_variadic(int a, ...) {
100100// C-NOT: {{ getelementptr }}
101101// CXX: %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
102102// CXX-NOT: {{ getelementptr }}
103- // CXXCLANG20 : %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
104- // CXXCLANG20 -NOT: {{ getelementptr }}
103+ // CXXCLANG19 : %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
104+ // CXXCLANG19 -NOT: {{ getelementptr }}
105105// WATCHOS: %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
106106// WATCHOS-NOT: {{ getelementptr }}
107107 va_list vl;
@@ -118,8 +118,8 @@ EXTERNC int sort_of_empty_arg_variadic(int a, ...) {
118118// C-NOT: {{ getelementptr }}
119119// CXX: %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
120120// CXX-NOT: {{ getelementptr }}
121- // CXXCLANG20 : %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
122- // CXXCLANG20 -NOT: {{ getelementptr }}
121+ // CXXCLANG19 : %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
122+ // CXXCLANG19 -NOT: {{ getelementptr }}
123123// WATCHOS: %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 4
124124// WATCHOS-NOT: {{ getelementptr }}
125125 va_list vl;
0 commit comments