diff options
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGen/ms-declspecs.c | 16 | ||||
| -rw-r--r-- | clang/test/Sema/MicrosoftCompatibility.c | 4 |
2 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CodeGen/ms-declspecs.c b/clang/test/CodeGen/ms-declspecs.c new file mode 100644 index 00000000000..d3235aee436 --- /dev/null +++ b/clang/test/CodeGen/ms-declspecs.c @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 -triple i386-pc-win32 %s -emit-llvm -fms-compatibility -o - | FileCheck %s + +// CHECK: define void @t3() nounwind noinline naked { +__declspec(naked) void t3() {} + +// CHECK: define void @t22() nounwind +void __declspec(nothrow) t22(); +void t22() {} + +// CHECK: define void @t2() nounwind noinline { +__declspec(noinline) void t2() {} + +// CHECK: call void @f20_t() +// CHECK: noreturn +__declspec(noreturn) void f20_t(void); +void f20(void) { f20_t(); } diff --git a/clang/test/Sema/MicrosoftCompatibility.c b/clang/test/Sema/MicrosoftCompatibility.c index c26c3039fde..f148e869ff0 100644 --- a/clang/test/Sema/MicrosoftCompatibility.c +++ b/clang/test/Sema/MicrosoftCompatibility.c @@ -10,3 +10,7 @@ enum ENUM2 { ENUM2_b = 0x9FFFFFFF, // expected-warning {{enumerator value is not representable in the underlying type 'int'}} ENUM2_c = 0x100000000 // expected-warning {{enumerator value is not representable in the underlying type 'int'}} }; + +__declspec(noreturn) void f6( void ) { + return; // expected-warning {{function 'f6' declared 'noreturn' should not return}} +} |

