| 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]; |