• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 template <typename T>
3 struct A {
4   char a __attribute__((aligned(16)));
5 
6   struct B {
7     typedef T __attribute__((aligned(16))) i16;
8     i16 x;
9   };
10 };
11 int a[sizeof(A<int>) == 16 ? 1 : -1];
12 int a2[sizeof(A<int>::B) == 16 ? 1 : -1];
13 
14 // rdar://problem/8243419
15 namespace test1 {
16   template <typename T> struct A {
17     int a;
18     T b[0];
19   } __attribute__((packed));
20 
21   typedef A<unsigned long> type;
22 
23   int test0[sizeof(type) == 4 ? 1 : -1];
24   int test1[__builtin_offsetof(type, a) == 0 ? 1 : -1];
25   int test2[__builtin_offsetof(type, b) == 4 ? 1 : -1];
26 }
27