blob: fea2cf6747c4c4978a7f23c91eee917a82ab11be [file] [log] [blame]
Aaron Ballman94287722012-02-23 22:46:33 +00001// RUN: %clang_cc1 -triple i386-pc-win32 %s -emit-llvm -fms-compatibility -o - | FileCheck %s
2
Aaron Ballmanfc685ac2012-06-19 22:09:27 +00003struct __declspec(align(16)) S {
4 char x;
5};
6union { struct S s; } u;
7
8// CHECK: @u = {{.*}}zeroinitializer, align 16
9
10
Bill Wendlingf7a9da02013-02-20 07:22:19 +000011// CHECK: define void @t3() #0 {
Aaron Ballman94287722012-02-23 22:46:33 +000012__declspec(naked) void t3() {}
13
Bill Wendlingf7a9da02013-02-20 07:22:19 +000014// CHECK: define void @t22() #1
Aaron Ballman94287722012-02-23 22:46:33 +000015void __declspec(nothrow) t22();
16void t22() {}
17
Bill Wendlingf7a9da02013-02-20 07:22:19 +000018// CHECK: define void @t2() #2 {
Aaron Ballman94287722012-02-23 22:46:33 +000019__declspec(noinline) void t2() {}
20
Bill Wendling4e1125f2013-02-22 09:10:20 +000021// CHECK: call void @f20_t() [[NR:#[0-9]+]]
Aaron Ballman94287722012-02-23 22:46:33 +000022__declspec(noreturn) void f20_t(void);
23void f20(void) { f20_t(); }
Bill Wendlingf7a9da02013-02-20 07:22:19 +000024
25// CHECK: attributes #0 = { naked noinline nounwind "target-features"={{.*}} }
26// CHECK: attributes #1 = { nounwind "target-features"={{.*}} }
27// CHECK: attributes #2 = { noinline nounwind "target-features"={{.*}} }
Bill Wendling4e1125f2013-02-22 09:10:20 +000028// CHECK: attributes [[NR]] = { noreturn "target-features"={{.*}} }