Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s |
Eli Friedman | c508203 | 2009-02-22 03:31:23 +0000 | [diff] [blame] | 2 | |
| 3 | // PR3433 |
| 4 | double g1; |
| 5 | short chk1[__alignof__(g1) == 8 ? 1 : -1]; |
Eli Friedman | 1eed602 | 2009-05-25 21:27:19 +0000 | [diff] [blame] | 6 | short chk2[__alignof__(double) == 8 ? 1 : -1]; |
| 7 | |
| 8 | long long g2; |
| 9 | short chk1[__alignof__(g2) == 8 ? 1 : -1]; |
| 10 | short chk2[__alignof__(long long) == 8 ? 1 : -1]; |
| 11 | |
| 12 | _Complex double g3; |
| 13 | short chk1[__alignof__(g3) == 8 ? 1 : -1]; |
| 14 | short chk2[__alignof__(_Complex double) == 8 ? 1 : -1]; |
Charles Davis | 05f6247 | 2010-02-23 04:52:00 +0000 | [diff] [blame] | 15 | |
| 16 | // PR6362 |
Carl Norum | e224ba7 | 2011-03-07 22:57:45 +0000 | [diff] [blame] | 17 | struct __attribute__((packed)) {unsigned int a;} g4; |
Charles Davis | 05f6247 | 2010-02-23 04:52:00 +0000 | [diff] [blame] | 18 | short chk1[__alignof__(g4) == 1 ? 1 : -1]; |
| 19 | short chk2[__alignof__(g4.a) == 1 ? 1 : -1]; |
| 20 | |
Argyrios Kyrtzidis | cd88b41 | 2011-04-26 21:05:39 +0000 | [diff] [blame] | 21 | |
| 22 | // PR5637 |
| 23 | |
| 24 | #define ALIGNED(x) __attribute__((aligned(x))) |
| 25 | |
| 26 | typedef ALIGNED(2) struct { |
| 27 | char a[3]; |
| 28 | } T; |
| 29 | |
| 30 | short chk1[sizeof(T) == 3 ? 1 : -1]; |
| 31 | short chk2[sizeof(T[1]) == 4 ? 1 : -1]; |
| 32 | short chk3[sizeof(T[2]) == 6 ? 1 : -1]; |
| 33 | short chk4[sizeof(T[2][1]) == 8 ? 1 : -1]; |
| 34 | short chk5[sizeof(T[1][2]) == 6 ? 1 : -1]; |
| 35 | |
| 36 | typedef struct ALIGNED(2) { |
| 37 | char a[3]; |
| 38 | } T2; |
| 39 | |
| 40 | short chk1[sizeof(T2) == 4 ? 1 : -1]; |
| 41 | short chk2[sizeof(T2[1]) == 4 ? 1 : -1]; |
| 42 | short chk3[sizeof(T2[2]) == 8 ? 1 : -1]; |
| 43 | short chk4[sizeof(T2[2][1]) == 8 ? 1 : -1]; |
| 44 | short chk5[sizeof(T2[1][2]) == 8 ? 1 : -1]; |