Aaron Ballman | 82bfa19 | 2012-10-02 14:26:08 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple x86_64-pc-win32 -emit-llvm < %s | FileCheck %s
|
| 2 |
|
| 3 | void __fastcall f1(void);
|
| 4 | void __stdcall f2(void);
|
| 5 | void __fastcall f4(void) {
|
| 6 | // CHECK: define void @f4()
|
| 7 | f1();
|
| 8 | // CHECK: call void @f1()
|
| 9 | }
|
| 10 | void __stdcall f5(void) {
|
| 11 | // CHECK: define void @f5()
|
| 12 | f2();
|
| 13 | // CHECK: call void @f2()
|
| 14 | }
|
| 15 |
|
| 16 | // PR5280
|
| 17 | void (__fastcall *pf1)(void) = f1;
|
| 18 | void (__stdcall *pf2)(void) = f2;
|
| 19 | void (__fastcall *pf4)(void) = f4;
|
| 20 | void (__stdcall *pf5)(void) = f5;
|
| 21 |
|
| 22 | int main(void) {
|
| 23 | f4(); f5();
|
| 24 | // CHECK: call void @f4()
|
| 25 | // CHECK: call void @f5()
|
| 26 | pf1(); pf2(); pf4(); pf5();
|
| 27 | // CHECK: call void %{{.*}}()
|
| 28 | // CHECK: call void %{{.*}}()
|
| 29 | // CHECK: call void %{{.*}}()
|
| 30 | // CHECK: call void %{{.*}}()
|
| 31 | return 0;
|
| 32 | }
|
| 33 |
|
| 34 | // PR7117
|
| 35 | void __stdcall f7(foo) int foo; {}
|
| 36 | void f8(void) {
|
| 37 | f7(0);
|
| 38 | // CHECK: call void @f7(i32 0)
|
| 39 | }
|