1 // RUN: clang-cc -triple x86_64-unknown-unknown %s -fsyntax-only -verify
2 
3 #define SA(n, p) int a##n[(p) ? 1 : -1]
4 
5 struct A {
6   int a;
7   char b;
8 };
9 
10 SA(0, sizeof(A) == 8);
11 
12 struct B : A {
13   char c;
14 };
15 
16 SA(1, sizeof(B) == 12);
17 
18 struct C {
19 // Make fields private so C won't be a POD type.
20 private:
21   int a;
22   char b;
23 };
24 
25 SA(2, sizeof(C) == 8);
26 
27 struct D : C {
28   char c;
29 };
30 
31 SA(3, sizeof(D) == 8);
32 
33 struct __attribute__((packed)) E {
34   char b;
35   int a;
36 };
37 
38 SA(4, sizeof(E) == 5);
39 
40 struct __attribute__((packed)) F : E {
41   char d;
42 };
43 
44 SA(5, sizeof(F) == 6);
45