summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/stdcall-fastcall.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/stdcall-fastcall.c')
-rw-r--r--test/CodeGen/stdcall-fastcall.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/test/CodeGen/stdcall-fastcall.c b/test/CodeGen/stdcall-fastcall.c
index 838ccfb..bea6df3 100644
--- a/test/CodeGen/stdcall-fastcall.c
+++ b/test/CodeGen/stdcall-fastcall.c
@@ -1,17 +1,33 @@
-// RUN: %clang_cc1 -emit-llvm < %s | grep 'fastcallcc' | count 4
-// RUN: %clang_cc1 -emit-llvm < %s | grep 'stdcallcc' | count 4
+// RUN: %clang_cc1 -emit-llvm < %s | FileCheck %s
void __attribute__((fastcall)) f1(void);
void __attribute__((stdcall)) f2(void);
void __attribute__((fastcall)) f3(void) {
+// CHECK: define x86_fastcallcc void @f3()
f1();
+// CHECK: call x86_fastcallcc void @f1()
}
void __attribute__((stdcall)) f4(void) {
+// CHECK: define x86_stdcallcc void @f4()
f2();
+// CHECK: call x86_stdcallcc void @f2()
}
+// PR5280
+void (__attribute__((fastcall)) *pf1)(void) = f1;
+void (__attribute__((stdcall)) *pf2)(void) = f2;
+void (__attribute__((fastcall)) *pf3)(void) = f3;
+void (__attribute__((stdcall)) *pf4)(void) = f4;
+
int main(void) {
f3(); f4();
+ // CHECK: call x86_fastcallcc void @f3()
+ // CHECK: call x86_stdcallcc void @f4()
+ pf1(); pf2(); pf3(); pf4();
+ // CHECK: call x86_fastcallcc void %{{.*}}()
+ // CHECK: call x86_stdcallcc void %{{.*}}()
+ // CHECK: call x86_fastcallcc void %{{.*}}()
+ // CHECK: call x86_stdcallcc void %{{.*}}()
return 0;
}
OpenPOWER on IntegriCloud