llvm-project/clang/test/Sema/aix-pragma-align-packed-warn.c
Sean Fertile 9b10e2b1cf [PowerPC][AIX] Warn when using pragma align(packed) on AIX.
With xlc and xlC pragma align(packed) will pack bitfields the same way
as pragma align(bit_packed). xlclang, xlclang++ and clang will
pack bitfields the same way as pragma pack(1). Issue a warning when
source code using pragma align(packed) is used to alert the user it
may not be compatable with xlc/xlC.

Differential Revision: https://reviews.llvm.org/D107506
2021-09-29 11:53:46 -04:00

32 lines
682 B
C

// RUN: %clang_cc1 -triple powerpc64-ibm-aix-xcoff -fxl-pragma-pack -verify -fsyntax-only %s
// RUN: %clang_cc1 -triple powerpc-ibm-aix-xcoff -fxl-pragma-pack -verify -fsyntax-only %s
#pragma align(packed)
struct A { // expected-warning {{#pragma align(packed) may not be compatible with objects generated with AIX XL C/C++}}
short s1;
int : 0;
short s2;
};
struct B { // expected-warning {{#pragma align(packed) may not be compatible with objects generated with AIX XL C/C++}}
short a : 8;
short b : 8;
int c;
};
struct C {
int x, y, z;
};
struct D {
double d;
struct A a;
};
#pragma align(reset)
struct E {
int a : 28;
int : 0;
int b : 16;
};