19b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian// RUN: %clang_cc1 -triple i386-apple-darwin10 -emit-llvm %s -o - | FileCheck %s
29b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian
39b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian#define ATTR __attribute__((__ms_struct__))
49b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanianstruct s1 {
59b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian  int       f32;
69b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian  long long f64;
79b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian} ATTR s1;
89b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian
99b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian// CHECK: %struct.s1 = type { i32, [4 x i8], i64 }
109b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian
119b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanianstruct s2 {
129b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian  int       f32;
139b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian  long long f64[4];
149b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian} ATTR s2;
159b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian
169b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian// CHECK: %struct.s2 = type { i32, [4 x i8], [4 x i64] }
179b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian
189b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanianstruct s3 {
199b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian  int       f32;
209b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian  struct s1 s;
219b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian} ATTR s3;
229b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian
239b3acaa32548d0ce78b9c39a3911397f6738a47cFariborz Jahanian// CHECK: %struct.s3 = type { i32, [4 x i8], %struct.s1 }
24