Mercurial > hg > CbC > CbC_llvm
comparison clang/test/Sema/pragma-pack-2.c @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | c4bab56944e8 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: %clang_cc1 -triple i686-apple-darwin9 %s -fsyntax-only -verify | |
2 // expected-no-diagnostics | |
3 | |
4 #include <stddef.h> | |
5 | |
6 #pragma pack(4) | |
7 | |
8 // Baseline | |
9 struct s0 { | |
10 char f0; | |
11 int f1; | |
12 }; | |
13 extern int a0[offsetof(struct s0, f1) == 4 ? 1 : -1]; | |
14 | |
15 #pragma pack(push, 2) | |
16 struct s1 { | |
17 char f0; | |
18 int f1; | |
19 }; | |
20 extern int a1[offsetof(struct s1, f1) == 2 ? 1 : -1]; | |
21 #pragma pack(pop) | |
22 | |
23 #pragma pack(1) | |
24 struct s3_0 { | |
25 char f0; | |
26 int f1; | |
27 }; | |
28 #pragma pack() | |
29 struct s3_1 { | |
30 char f0; | |
31 int f1; | |
32 }; | |
33 extern int a3_0[offsetof(struct s3_0, f1) == 1 ? 1 : -1]; | |
34 extern int a3_1[offsetof(struct s3_1, f1) == 4 ? 1 : -1]; | |
35 | |
36 // pack(0) is like pack() | |
37 #pragma pack(1) | |
38 struct s4_0 { | |
39 char f0; | |
40 int f1; | |
41 }; | |
42 #pragma pack(0) | |
43 struct s4_1 { | |
44 char f0; | |
45 int f1; | |
46 }; | |
47 extern int a4_0[offsetof(struct s4_0, f1) == 1 ? 1 : -1]; | |
48 extern int a4_1[offsetof(struct s4_1, f1) == 4 ? 1 : -1]; | |
49 | |
50 void f() { | |
51 #pragma pack(push, 2) | |
52 struct s5_0 { | |
53 char f0; | |
54 struct s2_4_0 { | |
55 int f0; | |
56 } f1; | |
57 }; | |
58 #pragma pack(pop) | |
59 extern int s5_0[offsetof(struct s5_0, f1) == 2 ? 1 : -1]; | |
60 } |