120 lines · c
1// Test this without pch.2// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DSET3// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DRESET4// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH5// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only \6// RUN: -Wno-pragma-pack -DPUSH_POP7// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -include %s -fsyntax-only -fdump-record-layouts \8// RUN: -Wno-pragma-pack -DALIGN_NATURAL | \9// RUN: FileCheck %s10 11// Test with pch.12// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DSET -emit-pch -o %t13// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DSET -verify -include-pch %t14// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DRESET -emit-pch -o %t15// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DRESET -verify -include-pch %t16// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH -emit-pch -o %t17// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH -verify -include-pch %t18// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH_POP -emit-pch -o %t19// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH_POP -verify -include-pch %t20// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DALIGN_NATURAL -emit-pch -o %t21// RUN: %clang_cc1 -triple powerpc-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DALIGN_NATURAL \22// RUN: -fdump-record-layouts -include-pch %t | \23// RUN: FileCheck %s24 25// Test this without pch.26// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DSET27// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DRESET28// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH29// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -include %s -verify -fsyntax-only \30// RUN: -Wno-pragma-pack -DPUSH_POP31// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -include %s -fsyntax-only -fdump-record-layouts \32// RUN: -Wno-pragma-pack -DALIGN_NATURAL33 34// Test with pch.35// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DSET -emit-pch -o %t36// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DSET -verify -include-pch %t37// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DRESET -emit-pch -o %t38// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DRESET -verify -include-pch %t39// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH -emit-pch -o %t40// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH -verify -include-pch %t41// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH_POP -emit-pch -o %t42// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DPUSH_POP -verify -include-pch %t43// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DALIGN_NATURAL -emit-pch -o %t44// RUN: %clang_cc1 -triple powerpc64-unknown-aix -fxl-pragma-pack %s -Wno-pragma-pack -DALIGN_NATURAL \45// RUN: -fdump-record-layouts -include-pch %t | \46// RUN: FileCheck %s47 48#ifndef HEADER49#define HEADER50 51#ifdef SET52#pragma pack(1)53#endif54 55#ifdef RESET56#pragma pack(2)57#pragma pack()58#endif59 60#ifdef PUSH61#pragma pack(1)62#pragma pack(push, 2)63#endif64 65#ifdef PUSH_POP66#pragma pack(push, 4)67#pragma pack(push, 2)68#pragma pack(pop)69#endif70 71#ifdef ALIGN_NATURAL72#pragma align(natural)73#endif74 75#else76 77#ifdef SET78#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 1}}79#pragma pack(pop)80#endif81 82#ifdef RESET83#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}}84#pragma()85#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}}86#endif87 88#ifdef PUSH89#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 2}}90#pragma pack(pop)91#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 1}}92#pragma pack()93#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}}94#pragma pack(pop) // expected-warning {{#pragma pack(pop, ...) failed: stack empty}}95#endif96 97#ifdef PUSH_POP98#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 4}}99#pragma pack(pop)100#pragma pack(show) // expected-warning {{value of #pragma pack(show) == 8}}101#pragma pack(pop) // expected-warning {{#pragma pack(pop, ...) failed: stack empty}}102#endif103 104#ifdef ALIGN_NATURAL105struct D {106 int i;107 double d;108} d;109 110int s = sizeof(d);111 112// CHECK: *** Dumping AST Record Layout113// CHECK: 0 | struct D114// CHECK: 0 | int i115// CHECK: 8 | double d116// CHECK: | [sizeof=16, align=4, preferredalign=8]117#endif118 119#endif120