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