1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s 2396b2a22788b0134018760d6a476de1e20f81334Daniel Dunbar 3396b2a22788b0134018760d6a476de1e20f81334Daniel Dunbarint x __attribute__((aligned(3))); // expected-error {{requested alignment is not a power of 2}} 4dcdafb6a701aa9d81edcb088915f58933315dc05Eli Friedman 5dcdafb6a701aa9d81edcb088915f58933315dc05Eli Friedman// PR3254 6dcdafb6a701aa9d81edcb088915f58933315dc05Eli Friedmanshort g0[3] __attribute__((aligned)); 7dcdafb6a701aa9d81edcb088915f58933315dc05Eli Friedmanshort g0_chk[__alignof__(g0) == 16 ? 1 : -1]; 818857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregor 918857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregor// <rdar://problem/6840045> 1018857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregortypedef char ueber_aligned_char __attribute__((aligned(8))); 1118857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregor 1218857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregorstruct struct_with_ueber_char { 1318857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregor ueber_aligned_char c; 1418857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregor}; 1518857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregor 164081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar a = 0; 1718857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregor 1818857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregorchar a0[__alignof__(ueber_aligned_char) == 8? 1 : -1] = { 0 }; 1918857644059c45da6776f1a288eec7b4cf3a844aDouglas Gregorchar a1[__alignof__(struct struct_with_ueber_char) == 8? 1 : -1] = { 0 }; 204081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar a2[__alignof__(a) == 1? : -1] = { 0 }; 214081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar a3[sizeof(a) == 1? : -1] = { 0 }; 224081a5c5f1381c4ec77f8ab3866693917e4329c4John McCall 234081a5c5f1381c4ec77f8ab3866693917e4329c4John McCall// rdar://problem/8335865 244081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallint b __attribute__((aligned(2))); 254081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar b1[__alignof__(b) == 2 ?: -1] = {0}; 264081a5c5f1381c4ec77f8ab3866693917e4329c4John McCall 274081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallstruct C { int member __attribute__((aligned(2))); } c; 284081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar c1[__alignof__(c) == 4 ?: -1] = {0}; 294081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar c2[__alignof__(c.member) == 4 ?: -1] = {0}; 304081a5c5f1381c4ec77f8ab3866693917e4329c4John McCall 314081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallstruct D { int member __attribute__((aligned(2))) __attribute__((packed)); } d; 324081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar d1[__alignof__(d) == 2 ?: -1] = {0}; 334081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar d2[__alignof__(d.member) == 2 ?: -1] = {0}; 344081a5c5f1381c4ec77f8ab3866693917e4329c4John McCall 35b2749b134a190c3b60cf22c11686afd8fcc7c6d0Douglas Gregorstruct E { int member __attribute__((align(2))); } __attribute__((packed)); 364081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallstruct E e; 374081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar e1[__alignof__(e) == 2 ?: -1] = {0}; 384081a5c5f1381c4ec77f8ab3866693917e4329c4John McCallchar e2[__alignof__(e.member) == 2 ?: -1] = {0}; 39