Alex Lorenz | 45b4014 | 2017-07-28 14:41:21 +0000 | [diff] [blame] | 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 |
Matt Davis | 0090753 | 2018-09-12 18:27:21 +0000 | [diff] [blame] | 19 | // expected-warning@-3 {{the current #pragma pack alignment value is modified in the included file}} |
Alex Lorenz | 45b4014 | 2017-07-28 14:41:21 +0000 | [diff] [blame] | 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 |