1 | |
2 | #ifndef NO_RECORD_1 |
3 | struct ReceivesPragma { }; |
4 | #endif |
5 | |
6 | #ifdef SET_FIRST_HEADER |
7 | #pragma pack (16) |
8 | #ifndef SET_SECOND_HEADER |
9 | // expected-note@-2 2 {{previous '#pragma pack' directive that modifies alignment is here}} |
10 | #else |
11 | // expected-note@-4 1 {{previous '#pragma pack' directive that modifies alignment is here}} |
12 | #endif |
13 | // expected-warning@+3 {{non-default #pragma pack value changes the alignment of struct or union members in the included file}} |
14 | #endif |
15 | |
16 | #include "pragma-pack2.h" |
17 | |
18 | #ifdef SET_SECOND_HEADER |
19 | // expected-warning@-3 {{the current #pragma pack alignment value is modified in the included file}} |
20 | #endif |
21 | |
22 | #ifdef PUSH_POP_FIRST_HEADER |
23 | // This is fine, we don't change the current value. |
24 | #pragma pack (push, 4) |
25 | |
26 | #pragma pack (pop) |
27 | #endif |
28 | |