diff options
Diffstat (limited to 'test/CodeGenCXX/default_calling_conv.cpp')
-rw-r--r-- | test/CodeGenCXX/default_calling_conv.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGenCXX/default_calling_conv.cpp b/test/CodeGenCXX/default_calling_conv.cpp index 95c214a223d4..b5b0f47ceb98 100644 --- a/test/CodeGenCXX/default_calling_conv.cpp +++ b/test/CodeGenCXX/default_calling_conv.cpp @@ -3,13 +3,23 @@ // RUN: %clang_cc1 -triple i486-unknown-linux-gnu -fdefault-calling-conv=stdcall -emit-llvm -o - %s | FileCheck %s --check-prefix=STDCALL --check-prefix=ALL // RUN: %clang_cc1 -triple i486-unknown-linux-gnu -mrtd -emit-llvm -o - %s | FileCheck %s --check-prefix=STDCALL --check-prefix=ALL // RUN: %clang_cc1 -triple i986-unknown-linux-gnu -fdefault-calling-conv=vectorcall -emit-llvm -o - %s | FileCheck %s --check-prefix=VECTORCALL --check-prefix=ALL +// RUN: %clang_cc1 -triple i986-unknown-linux-gnu -fdefault-calling-conv=regcall -emit-llvm -o - %s | FileCheck %s --check-prefix=REGCALL --check-prefix=ALL // CDECL: define void @_Z5test1v // FASTCALL: define x86_fastcallcc void @_Z5test1v // STDCALL: define x86_stdcallcc void @_Z5test1v // VECTORCALL: define x86_vectorcallcc void @_Z5test1v +// REGCALL: define x86_regcallcc void @_Z17__regcall3__test1v void test1() {} +// fastcall, stdcall, vectorcall and regcall do not support variadic functions. +// CDECL: define void @_Z12testVariadicz +// FASTCALL: define void @_Z12testVariadicz +// STDCALL: define void @_Z12testVariadicz +// VECTORCALL: define void @_Z12testVariadicz +// REGCALL: define void @_Z12testVariadicz +void testVariadic(...){} + // ALL: define void @_Z5test2v void __attribute__((cdecl)) test2() {} @@ -22,6 +32,9 @@ void __attribute__((stdcall)) test4() {} // ALL: define x86_vectorcallcc void @_Z5test5v void __attribute__((vectorcall)) test5() {} +// ALL: define x86_regcallcc void @_Z17__regcall3__test6v +void __attribute__((regcall)) test6() {} + // ALL: define linkonce_odr void @_ZN1A11test_memberEv class A { public: @@ -32,3 +45,8 @@ void test() { A a; a.test_member(); } + +// ALL: define i32 @main +int main() { + return 1; +} |