|  | // RUN: %clang_cc1 -triple i686-apple-darwin9 %s -fsyntax-only -verify | 
|  |  | 
|  | // Check that #pragma pack and #pragma options share the same stack. | 
|  |  | 
|  | #pragma pack(push, 1) | 
|  | struct s0 { | 
|  | char c; | 
|  | int x; | 
|  | }; | 
|  | extern int a[sizeof(struct s0) == 5 ? 1 : -1]; | 
|  |  | 
|  | #pragma options align=natural | 
|  | struct s1 { | 
|  | char c; | 
|  | int x; | 
|  | }; | 
|  | extern int a[sizeof(struct s1) == 8 ? 1 : -1]; | 
|  |  | 
|  | #pragma options align=reset | 
|  | #pragma options align=native | 
|  | struct s1_1 { | 
|  | char c; | 
|  | int x; | 
|  | }; | 
|  | extern int a[sizeof(struct s1_1) == 8 ? 1 : -1]; | 
|  |  | 
|  | #pragma pack(pop) | 
|  | struct s2 { | 
|  | char c; | 
|  | int x; | 
|  | }; | 
|  | extern int a[sizeof(struct s2) == 5 ? 1 : -1]; | 
|  | #pragma pack(pop) | 
|  |  | 
|  | struct s3 { | 
|  | char c; | 
|  | int x; | 
|  | }; | 
|  | extern int a[sizeof(struct s3) == 8 ? 1 : -1]; | 
|  |  | 
|  | #pragma pack(push,2) | 
|  | #pragma options align=power | 
|  | struct s4 { | 
|  | char c; | 
|  | int x; | 
|  | }; | 
|  | #pragma pack(pop) | 
|  | #pragma options align=reset | 
|  | extern int a[sizeof(struct s4) == 8 ? 1 : -1]; | 
|  |  | 
|  | /* expected-warning {{#pragma options align=reset failed: stack empty}} */ #pragma options align=reset | 
|  | /* expected-warning {{#pragma pack(pop, ...) failed: stack empty}} */ #pragma pack(pop) | 
|  |  |