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