diff options
Diffstat (limited to 'test/Sema/pragma-pack-2.c')
-rw-r--r-- | test/Sema/pragma-pack-2.c | 58 |
1 files changed, 12 insertions, 46 deletions
diff --git a/test/Sema/pragma-pack-2.c b/test/Sema/pragma-pack-2.c index 3e6234c57f0e..4a4c202c71ad 100644 --- a/test/Sema/pragma-pack-2.c +++ b/test/Sema/pragma-pack-2.c @@ -19,52 +19,6 @@ struct s1 { extern int a1[offsetof(struct s1, f1) == 2 ? 1 : -1]; #pragma pack(pop) -// Test scope of definition - -#pragma pack(push, 2) -struct s2_0 { -#pragma pack(pop) - char f0; - int f1; -}; -extern int a2_0[offsetof(struct s2_0, f1) == 2 ? 1 : -1]; - -struct s2_1 { - char f0; -#pragma pack(push, 2) - int f1; -#pragma pack(pop) -}; -extern int a2_1[offsetof(struct s2_1, f1) == 4 ? 1 : -1]; - -struct s2_2 { - char f0; - int f1; -#pragma pack(push, 2) -}; -#pragma pack(pop) -extern int a2_2[offsetof(struct s2_2, f1) == 4 ? 1 : -1]; - -struct s2_3 { - char f0; -#pragma pack(push, 2) - struct s2_3_0 { -#pragma pack(pop) - int f0; - } f1; -}; -extern int a2_3[offsetof(struct s2_3, f1) == 2 ? 1 : -1]; - -struct s2_4 { - char f0; - struct s2_4_0 { - int f0; -#pragma pack(push, 2) - } f1; -#pragma pack(pop) -}; -extern int a2_4[offsetof(struct s2_4, f1) == 4 ? 1 : -1]; - #pragma pack(1) struct s3_0 { char f0; @@ -91,3 +45,15 @@ struct s4_1 { }; extern int a4_0[offsetof(struct s4_0, f1) == 1 ? 1 : -1]; extern int a4_1[offsetof(struct s4_1, f1) == 4 ? 1 : -1]; + +void f() { + #pragma pack(push, 2) + struct s5_0 { + char f0; + struct s2_4_0 { + int f0; + } f1; + }; + #pragma pack(pop) + extern int s5_0[offsetof(struct s5_0, f1) == 2 ? 1 : -1]; +} |