diff options
-rw-r--r-- | test/CodeGen/pragma-pack-1.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/CodeGen/pragma-pack-1.c b/test/CodeGen/pragma-pack-1.c index 06cbf4c16c..2a71c8f79b 100644 --- a/test/CodeGen/pragma-pack-1.c +++ b/test/CodeGen/pragma-pack-1.c @@ -24,10 +24,45 @@ struct S } d2; } ss; +struct S3 +{ + char a[3]; +#pragma pack(push, 2) + struct T3 + { + char b; + int c; + } d; +#pragma pack(pop) + struct T32 + { + char b; + int c; + } e; +} s3; + +struct S4 +{ + char a[3]; +#pragma align=packed + struct T4 + { + char b; + int c; + } d; + int e; +} s4; + // CHECK: [[struct_ref:%[a-zA-Z0-9_.]+]] = type <{ [[struct_ref]]* }> // CHECK: [[struct_S:%[a-zA-Z0-9_.]+]] = type { [3 x i8], [[struct_T:%[a-zA-Z0-9_.]+]], [[struct_T2:%[a-zA-Z0-9_.]+]] } // CHECK: [[struct_T]] = type <{ i8, i32 }> // CHECK: [[struct_T2]] = type { i8, i32 } +// CHECK: %struct.S3 = type <{ [3 x i8], i8, %struct.T3, [2 x i8], %struct.T32 }> +// CHECK: %struct.T3 = type <{ i8, i8, i32 }> +// CHECK: %struct.T32 = type { i8, i32 } +// CHECK: %struct.S4 = type { [3 x i8], %struct.T4, i32 } +// CHECK: %struct.T4 = type <{ i8, i32 }> + // CHECK: @refs = common global [[struct_ref]] // CHECK: @ss = common global [[struct_S]] |