11// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
22// See https://llvm.org/LICENSE.txt for license information.
33// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+ // RUN: cxx_compiler cxx_11 -fclang-abi-compat=17 -c %s -o %t.o
5+ // RUN: bindump %t.o | FileCheck prefixes --check-prefix=LP64-17 --check-prefix=CHECK17 %s
46// RUN: cxx_compiler cxx_11 -c %s -o %t.o
5- // RUN: bindump %t.o | FileCheck prefixes %s
7+ // RUN: bindump %t.o | FileCheck prefixes --check-prefix=LP64-18 --check-prefix=CHECK18 %s
68
79
810
@@ -22,25 +24,35 @@ enum colour { RED = -3, GREEN, BLUE};
2224// use long type for enumeration
2325enum bigcolour { YELLOW = (1l << 32), CYAN, MAGENTA};
2426void callreturnit() {
25- // CHECK-DAG: _Z8returnitIiLi4EET_v
27+ // CHECK17-DAG: _Z8returnitIiLi4EET_v
28+ // CHECK18-DAG: _Z8returnitIiTnT_Li4EES0_v
2629 auto a = returnit<int, 4>();
27- // CHECK-DAG: _Z8returnitIjLj4EET_v
30+ // CHECK17-DAG: _Z8returnitIjLj4EET_v
31+ // CHECK18-DAG: _Z8returnitIjTnT_Lj4EES0_v
2832 auto b = returnit<unsigned int, 4>();
29- // CHECK-DAG: _Z8returnitIlLl4EET_v
33+ // CHECK17-DAG: _Z8returnitIlLl4EET_v
34+ // CHECK18-DAG: _Z8returnitIlTnT_Ll4EES0_v
3035 auto c = returnit<long, 4>();
31- // CHECK-DAG: _Z8returnitImLm4EET_v
36+ // CHECK17-DAG: _Z8returnitImLm4EET_v
37+ // CHECK18-DAG: _Z8returnitImTnT_Lm4EES0_v
3238 auto d = returnit<unsigned long, 4>();
33- // CHECK-DAG: _Z8returnitIxLxn456789EET_v
39+ // CHECK17-DAG: _Z8returnitIxLxn456789EET_v
40+ // CHECK18-DAG: _Z8returnitIxTnT_Lxn456789EES0_v
3441 auto e = returnit<long long, -456789>();
35- // CHECK-DAG: _Z8returnitIbLb1EET_v
42+ // CHECK17-DAG: _Z8returnitIbLb1EET_v
43+ // CHECK18-DAG: _Z8returnitIbTnT_Lb1EES0_v
3644 auto f = returnit<bool, true>();
37- // CHECK-DAG: _Z8returnitIbLb0EET_v
45+ // CHECK17-DAG: _Z8returnitIbLb0EET_v
46+ // CHECK18-DAG: _Z8returnitIbTnT_Lb0EES0_v
3847 auto g = returnit<bool, false>();
39- // CHECK-DAG: _Z8returnitIDnLDn0EET_v
48+ // CHECK17-DAG: _Z8returnitIDnLDn0EET_v
49+ // CHECK18-DAG: _Z8returnitIDnTnT_LDn0EES0_v
4050 auto n = returnit<std::nullptr_t, nullptr>();
41- // CHECK-DAG: _Z8returnitI6colourLS0_n2EET_v
51+ // CHECK17-DAG: _Z8returnitI6colourLS0_n2EET_v
52+ // CHECK18-DAG: _Z8returnitI6colourTnT_LS0_n2EES1_v
4253 auto cg = returnit<colour, GREEN>();
43- // LP64-DAG: _Z8returnitI9bigcolourLS0_4294967296EET_v
54+ // LP64-17-DAG: _Z8returnitI9bigcolourLS0_4294967296EET_v
55+ // LP64-18-DAG: _Z8returnitI9bigcolourTnT_LS0_4294967296EES1_v
4456 // ILP32-DAG: _Z8returnitI9bigcolourLS0_n2147483648EET_v
4557 auto cy = returnit<bigcolour, YELLOW>();
4658}
0 commit comments