1 // Test this without pch. 2 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DSET 3 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DRESET 4 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH 5 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH_POP 6 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH_POP_LABEL 7 8 // Test with pch. 9 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DSET -emit-pch -o %t 10 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DSET -verify -include-pch %t 11 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DRESET -emit-pch -o %t 12 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DRESET -verify -include-pch %t 13 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH -emit-pch -o %t 14 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH -verify -include-pch %t 15 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP -emit-pch -o %t 16 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP -verify -include-pch %t 17 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP_LABEL -emit-pch -o %t 18 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP_LABEL -verify -include-pch %t 19 20 #ifndef HEADER 21 #define HEADER 22 23 #ifdef SET 24 #pragma pack(1) 25 #endif 26 27 #ifdef RESET 28 #pragma pack(2) 29 #pragma pack () 30 #endif 31 32 #ifdef PUSH 33 #pragma pack(1) 34 #pragma pack (push, 2) 35 #endif 36 37 #ifdef PUSH_POP 38 #pragma pack (push, 4) 39 #pragma pack (push, 2) 40 #pragma pack (pop) 41 #endif 42 43 #ifdef PUSH_POP_LABEL 44 #pragma pack (push, a, 4) 45 #pragma pack (push, b, 1) 46 #pragma pack (push, c, 2) 47 #pragma pack (pop, b) 48 #endif 49 50 #else 51 52 #ifdef SET 53 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 1}} 54 #pragma pack(pop) // expected-warning {{#pragma pack(pop, ...) failed: stack empty}} 55 #endif 56 57 #ifdef RESET 58 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}} 59 #pragma () 60 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}} 61 #endif 62 63 #ifdef PUSH 64 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 2}} 65 #pragma pack(pop) 66 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 1}} 67 #pragma pack () 68 #pragma pack (show) // expected-warning {{value of #pragma pack(show) == 8}} 69 #pragma pack(pop) // expected-warning {{#pragma pack(pop, ...) failed: stack empty}} 70 #endif 71 72 #ifdef PUSH_POP 73 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 4}} 74 #pragma pack(pop) 75 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}} 76 #pragma pack(pop) // expected-warning {{#pragma pack(pop, ...) failed: stack empty}} 77 #endif 78 79 #ifdef PUSH_POP_LABEL 80 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 4}} 81 #pragma pack(pop, c) 82 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 4}} 83 #pragma pack(pop, a) 84 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}} 85 #pragma pack(pop) // expected-warning {{#pragma pack(pop, ...) failed: stack empty}} 86 #pragma pack(pop, b) // expected-warning {{#pragma pack(pop, ...) failed: stack empty}} 87 #pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}} 88 #endif 89 90 #endif 91