1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 // Note that this puts the expected lines before the directives to work around 4 // limitations in the -verify mode. 5 6 /* expected-warning {{missing '(' after '#pragma pack'}}*/ #pragma pack 10 7 #pragma pack() 8 #pragma pack(8) 9 10 /*expected-warning {{unknown action for '#pragma pack'}}*/ #pragma pack(hello) 11 #pragma pack(push) 12 #pragma pack(pop) 13 14 /* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,) 15 /* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,) 16 /* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(pop,) 17 18 #pragma pack(push,i) 19 /* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,i, 20 /* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,i,) 21 /* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,i,help) 22 23 #pragma pack(push,8) 24 /* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,8, 25 /* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,8,) 26 /* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,i,8 27 #pragma pack(push,i,8) 28 29 /* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push 30 31 _Pragma("pack(push)") 32 /* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ _Pragma("pack(push,)") 33 34 // PR13580 35 struct S 36 { 37 char a[3]; 38 #pragma pack(1) 39 struct T 40 { 41 char b; 42 int c; 43 } d; 44 #pragma pack() 45 int e; 46 }; 47 48 _Pragma("pack(push, 1)") struct PR28094 { 49 int a; 50 } _Pragma("pack(pop)"); 51