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