Home | History | Annotate | Download | only in SemaTemplate
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 // expected-no-diagnostics
      3 template <typename T>
      4 struct A {
      5   char a __attribute__((aligned(16)));
      6 
      7   struct B {
      8     typedef T __attribute__((aligned(16))) i16;
      9     i16 x;
     10   };
     11 };
     12 int a[sizeof(A<int>) == 16 ? 1 : -1];
     13 int a2[sizeof(A<int>::B) == 16 ? 1 : -1];
     14 
     15 // rdar://problem/8243419
     16 namespace test1 {
     17   template <typename T> struct A {
     18     int a;
     19     T b[0];
     20   } __attribute__((packed));
     21 
     22   typedef A<unsigned long> type;
     23 
     24   int test0[sizeof(type) == 4 ? 1 : -1];
     25   int test1[__builtin_offsetof(type, a) == 0 ? 1 : -1];
     26   int test2[__builtin_offsetof(type, b) == 4 ? 1 : -1];
     27 }
     28 
     29 namespace test2 {
     30   template <class type>
     31   struct fastscriptmember {
     32       type Member __attribute__ ((packed));
     33       char x;
     34   };
     35   int test0[sizeof(fastscriptmember<int>) == 5 ? 1 : -1];
     36 }
     37