xref: /llvm-project/clang/test/CodeGen/ms_struct.c (revision 84335f7c8eee07362271a5499341fa724ef17e03)
1*84335f7cSFariborz Jahanian // RUN: %clang_cc1 -triple i386-apple-darwin10 -emit-llvm %s -o - | FileCheck %s
2*84335f7cSFariborz Jahanian 
3*84335f7cSFariborz Jahanian #define ATTR __attribute__((__ms_struct__))
4*84335f7cSFariborz Jahanian struct s1 {
5*84335f7cSFariborz Jahanian   int       f32;
6*84335f7cSFariborz Jahanian   long long f64;
7*84335f7cSFariborz Jahanian } ATTR s1;
8*84335f7cSFariborz Jahanian 
9*84335f7cSFariborz Jahanian // CHECK: %struct.s1 = type { i32, [4 x i8], i64 }
10*84335f7cSFariborz Jahanian 
11*84335f7cSFariborz Jahanian struct s2 {
12*84335f7cSFariborz Jahanian   int       f32;
13*84335f7cSFariborz Jahanian   long long f64[4];
14*84335f7cSFariborz Jahanian } ATTR s2;
15*84335f7cSFariborz Jahanian 
16*84335f7cSFariborz Jahanian // CHECK: %struct.s2 = type { i32, [4 x i8], [4 x i64] }
17*84335f7cSFariborz Jahanian 
18*84335f7cSFariborz Jahanian struct s3 {
19*84335f7cSFariborz Jahanian   int       f32;
20*84335f7cSFariborz Jahanian   struct s1 s;
21*84335f7cSFariborz Jahanian } ATTR s3;
22*84335f7cSFariborz Jahanian 
23*84335f7cSFariborz Jahanian // CHECK: %struct.s3 = type { i32, [4 x i8], %struct.s1 }
24