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 }