Home | History | Annotate | Download | only in Sema
      1 // RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s
      2 
      3 #include <stddef.h>
      4 
      5 #pragma options align=mac68k
      6 
      7 typedef float __attribute__((vector_size (8))) v2f_t;
      8 typedef float __attribute__((vector_size (16))) v4f_t;
      9 
     10 extern int a0_0[__alignof(v2f_t) == 8 ? 1 : -1];
     11 extern int a0_1[__alignof(v4f_t) == 16 ? 1 : -1];
     12 
     13 struct s1 {
     14   char f0;
     15   int  f1;
     16 };
     17 extern int a1_0[offsetof(struct s1, f0) == 0 ? 1 : -1];
     18 extern int a1_1[offsetof(struct s1, f1) == 2 ? 1 : -1];
     19 extern int a1_2[sizeof(struct s1) == 6 ? 1 : -1];
     20 extern int a1_3[__alignof(struct s1) == 2 ? 1 : -1];
     21 
     22 struct s2 {
     23   char f0;
     24   double f1;
     25 };
     26 extern int a2_0[offsetof(struct s2, f0) == 0 ? 1 : -1];
     27 extern int a2_1[offsetof(struct s2, f1) == 2 ? 1 : -1];
     28 extern int a2_2[sizeof(struct s2) == 10 ? 1 : -1];
     29 extern int a2_3[__alignof(struct s2) == 2 ? 1 : -1];
     30 
     31 struct s3 {
     32   char f0;
     33   v4f_t f1;
     34 };
     35 extern int a3_0[offsetof(struct s3, f0) == 0 ? 1 : -1];
     36 extern int a3_1[offsetof(struct s3, f1) == 2 ? 1 : -1];
     37 extern int a3_2[sizeof(struct s3) == 18 ? 1 : -1];
     38 extern int a3_3[__alignof(struct s3) == 2 ? 1 : -1];
     39 
     40 struct s4 {
     41   char f0;
     42   char f1;
     43 };
     44 extern int a4_0[offsetof(struct s4, f0) == 0 ? 1 : -1];
     45 extern int a4_1[offsetof(struct s4, f1) == 1 ? 1 : -1];
     46 extern int a4_2[sizeof(struct s4) == 2 ? 1 : -1];
     47 extern int a4_3[__alignof(struct s4) == 2 ? 1 : -1];
     48 
     49 struct s5 {
     50   unsigned f0 : 9;
     51   unsigned f1 : 9;
     52 };
     53 extern int a5_0[sizeof(struct s5) == 4 ? 1 : -1];
     54 extern int a5_1[__alignof(struct s5) == 2 ? 1 : -1];
     55 
     56 struct s6 {
     57   unsigned : 0;
     58   unsigned : 0;
     59 };
     60 extern int a6_0[sizeof(struct s6) == 0 ? 1 : -1];
     61 extern int a6_1[__alignof(struct s6) == 2 ? 1 : -1];
     62 
     63 struct s7 {
     64   char : 1;
     65   unsigned : 1;
     66 };
     67 extern int a7_0[sizeof(struct s7) == 2 ? 1 : -1];
     68 extern int a7_1[__alignof(struct s7) == 2 ? 1 : -1];
     69 
     70 struct s8 {
     71   char f0;
     72   unsigned : 1;
     73 };
     74 extern int a8_0[sizeof(struct s8) == 2 ? 1 : -1];
     75 extern int a8_1[__alignof(struct s8) == 2 ? 1 : -1];
     76 
     77 struct s9 {
     78   char f0[3];
     79   unsigned : 0;
     80   char f1;
     81 };
     82 extern int a9_0[sizeof(struct s9) == 6 ? 1 : -1];
     83 extern int a9_1[__alignof(struct s9) == 2 ? 1 : -1];
     84 
     85 struct s10 {
     86   char f0;
     87 };
     88 extern int a10_0[sizeof(struct s10) == 2 ? 1 : -1];
     89 extern int a10_1[__alignof(struct s10) == 2 ? 1 : -1];
     90 
     91 struct s11 {
     92   char f0;
     93   v2f_t f1;
     94 };
     95 extern int a11_0[offsetof(struct s11, f0) == 0 ? 1 : -1];
     96 extern int a11_1[offsetof(struct s11, f1) == 2 ? 1 : -1];
     97 extern int a11_2[sizeof(struct s11) == 10 ? 1 : -1];
     98 extern int a11_3[__alignof(struct s11) == 2 ? 1 : -1];
     99