blob: 172a332510a7ec4879d2eca5727e1985c3741f8c [file] [log] [blame]
Daniel Dunbar8fbe78f2009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Daniel Dunbar921b9682008-10-04 19:21:03 +00002
Chris Lattnercc498392008-10-04 19:38:15 +00003// 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
Daniel Dunbar921b9682008-10-04 19:21:03 +00007#pragma pack()
8#pragma pack(8)
9
Chris Lattnercc498392008-10-04 19:38:15 +000010/*expected-warning {{unknown action for '#pragma pack'}}*/ #pragma pack(hello)
Daniel Dunbar921b9682008-10-04 19:21:03 +000011#pragma pack(push)
12#pragma pack(pop)
13
Chris Lattnere3d20d92008-11-23 21:45:46 +000014/* 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,)
Daniel Dunbar921b9682008-10-04 19:21:03 +000017
18#pragma pack(push,i)
Chris Lattnere3d20d92008-11-23 21:45:46 +000019/* 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)
Daniel Dunbar921b9682008-10-04 19:21:03 +000022
23#pragma pack(push,8)
Daniel Dunbarfdfb0a02008-10-04 19:45:56 +000024/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,8,
Chris Lattnercc498392008-10-04 19:38:15 +000025/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,8,)
26/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push,i,8
Daniel Dunbar921b9682008-10-04 19:21:03 +000027#pragma pack(push,i,8)
28
Chris Lattnercc498392008-10-04 19:38:15 +000029/* expected-warning {{missing ')' after '#pragma pack'}}*/ #pragma pack(push
Daniel Dunbar921b9682008-10-04 19:21:03 +000030
31_Pragma("pack(push)")
Chris Lattnere3d20d92008-11-23 21:45:46 +000032/* expected-warning {{expected integer or identifier in '#pragma pack'}}*/ _Pragma("pack(push,)")
Argyrios Kyrtzidis71c12fb2013-04-18 01:42:35 +000033
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};