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 35struct 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