1 // RUN: %clang_cc1 -std=c++2b %s -emit-llvm -triple i386-windows-msvc -o - | FileCheck %s
2
3 namespace CC {
4
5 struct T {
6 static void f(T&);
7 void __cdecl g(this T&);
8 void __thiscall h(this T&);
9 void i(this T&);
10 };
11
a()12 void a() {
13 T t;
14 T::f(t);
15 }
16 // CHECK: define dso_local void @"?a@CC@@YAXXZ"{{.*}}
17 // CHECK: call void @"?f@T@CC@@SAXAAU12@@Z"{{.*}}
18
b()19 void b() {
20 T t;
21 t.g();
22 }
23 // CHECK: define dso_local void @"?b@CC@@YAXXZ"{{.*}}
24 // CHECK: call void @"?g@T@CC@@SAX_VAAU12@@Z"{{.*}}
25
c()26 void c() {
27 T t;
28 t.h();
29 }
30 // CHECK: define dso_local void @"?c@CC@@YAXXZ"{{.*}}
31 // CHECK: call x86_thiscallcc void @"?h@T@CC@@SEX_VAAU12@@Z"{{.*}}
32
d()33 void d() {
34 T t;
35 t.i();
36 }
37 // CHECK: define dso_local void @"?d@CC@@YAXXZ"{{.*}}
38 // CHECK: call void @"?i@T@CC@@SAX_VAAU12@@Z"{{.*}}
39
40 }
41