1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s
2fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar
34f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner// Note that this puts the expected lines before the directives to work around
44f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner// limitations in the -verify mode.
54f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner
64f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner/* expected-warning {{missing '(' after '#pragma pack'}}*/ #pragma pack 10
7fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar#pragma pack()
8fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar#pragma pack(8)
9fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar
104f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner/*expected-warning {{unknown action for '#pragma pack'}}*/ #pragma pack(hello)
11fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar#pragma pack(push)
12fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar#pragma pack(pop)
13fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar
1408631c5fa053867146b5ee8be658c229f6bf127cChris Lattner/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,)
1508631c5fa053867146b5ee8be658c229f6bf127cChris Lattner/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,)
1608631c5fa053867146b5ee8be658c229f6bf127cChris Lattner/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/  #pragma pack(pop,)
17fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar
18fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar#pragma pack(push,i)
1908631c5fa053867146b5ee8be658c229f6bf127cChris Lattner/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,i,
2008631c5fa053867146b5ee8be658c229f6bf127cChris Lattner/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,i,)
2108631c5fa053867146b5ee8be658c229f6bf127cChris Lattner/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ #pragma pack(push,i,help)
22fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar
23fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar#pragma pack(push,8)
24f7a726b5f220c0ea924c47b4b1f59b99eb2e5712Daniel Dunbar/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,8,
254f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,8,)
264f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,i,8
27fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar#pragma pack(push,i,8)
28fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar
294f2670d827bec492519eaf0be33638f8c7f6b3c1Chris Lattner/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push
30fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar
31fcdd8fe26de3eee44927600bf1853e21bd90dd84Daniel Dunbar_Pragma("pack(push)")
3208631c5fa053867146b5ee8be658c229f6bf127cChris Lattner/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ _Pragma("pack(push,)")
33bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis
34bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis// PR13580
35bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidisstruct S
36bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis{
37bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis  char a[3];
38bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis#pragma pack(1)
39bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis  struct T
40bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis  {
41bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis    char b;
42bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis    int c;
43bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis  } d;
44bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis#pragma pack()
45bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis  int e;
46bd95745d0efb0d3c6e7cc2f946438a8b2c39c858Argyrios Kyrtzidis};
47