]> git.proxmox.com Git - rustc.git/blob - src/llvm/tools/clang/test/SemaTemplate/instantiate-attr.cpp
Imported Upstream version 0.6
[rustc.git] / src / llvm / tools / clang / test / SemaTemplate / instantiate-attr.cpp
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 }