1*67e74705SXin Li // RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s 2*67e74705SXin Li // expected-no-diagnostics 3*67e74705SXin Li 4*67e74705SXin Li // PR3433 5*67e74705SXin Li double g1; 6*67e74705SXin Li short chk1[__alignof__(g1) == 8 ? 1 : -1]; 7*67e74705SXin Li short chk2[__alignof__(double) == 8 ? 1 : -1]; 8*67e74705SXin Li 9*67e74705SXin Li long long g2; 10*67e74705SXin Li short chk1[__alignof__(g2) == 8 ? 1 : -1]; 11*67e74705SXin Li short chk2[__alignof__(long long) == 8 ? 1 : -1]; 12*67e74705SXin Li 13*67e74705SXin Li unsigned long long g5; 14*67e74705SXin Li short chk1[__alignof__(g5) == 8 ? 1 : -1]; 15*67e74705SXin Li short chk2[__alignof__(unsigned long long) == 8 ? 1 : -1]; 16*67e74705SXin Li 17*67e74705SXin Li _Complex double g3; 18*67e74705SXin Li short chk1[__alignof__(g3) == 8 ? 1 : -1]; 19*67e74705SXin Li short chk2[__alignof__(_Complex double) == 8 ? 1 : -1]; 20*67e74705SXin Li 21*67e74705SXin Li // PR6362 22*67e74705SXin Li struct __attribute__((packed)) {unsigned int a;} g4; 23*67e74705SXin Li short chk1[__alignof__(g4) == 1 ? 1 : -1]; 24*67e74705SXin Li short chk2[__alignof__(g4.a) == 1 ? 1 : -1]; 25*67e74705SXin Li 26*67e74705SXin Li double g6[3]; 27*67e74705SXin Li short chk1[__alignof__(g6) == 8 ? 1 : -1]; 28*67e74705SXin Li short chk2[__alignof__(double[3]) == 8 ? 1 : -1]; 29*67e74705SXin Li 30*67e74705SXin Li enum { x = 18446744073709551615ULL } g7; 31*67e74705SXin Li short chk1[__alignof__(g7) == 8 ? 1 : -1]; 32*67e74705SXin Li 33*67e74705SXin Li // PR5637 34*67e74705SXin Li 35*67e74705SXin Li #define ALIGNED(x) __attribute__((aligned(x))) 36*67e74705SXin Li 37*67e74705SXin Li typedef ALIGNED(2) struct { 38*67e74705SXin Li char a[3]; 39*67e74705SXin Li } T; 40*67e74705SXin Li 41*67e74705SXin Li short chk1[sizeof(T) == 3 ? 1 : -1]; 42*67e74705SXin Li short chk2[sizeof(T[1]) == 4 ? 1 : -1]; 43*67e74705SXin Li short chk3[sizeof(T[2]) == 6 ? 1 : -1]; 44*67e74705SXin Li short chk4[sizeof(T[2][1]) == 8 ? 1 : -1]; 45*67e74705SXin Li short chk5[sizeof(T[1][2]) == 6 ? 1 : -1]; 46*67e74705SXin Li 47*67e74705SXin Li typedef struct ALIGNED(2) { 48*67e74705SXin Li char a[3]; 49*67e74705SXin Li } T2; 50*67e74705SXin Li 51*67e74705SXin Li short chk1[sizeof(T2) == 4 ? 1 : -1]; 52*67e74705SXin Li short chk2[sizeof(T2[1]) == 4 ? 1 : -1]; 53*67e74705SXin Li short chk3[sizeof(T2[2]) == 8 ? 1 : -1]; 54*67e74705SXin Li short chk4[sizeof(T2[2][1]) == 8 ? 1 : -1]; 55*67e74705SXin Li short chk5[sizeof(T2[1][2]) == 8 ? 1 : -1]; 56