blob: fbe2cbe6b464eb2f4fc88b86e052ec4310827f2d [file] [log] [blame]
Anders Carlsson1345bd22009-09-24 03:22:10 +00001// 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
5struct A { int a; };
6SA(0, sizeof(A) == 4);
7
8struct B { };
9SA(1, sizeof(B) == 1);
10
11struct C : A, B { };
12SA(2, sizeof(C) == 4);
Anders Carlssonffbdefc2009-09-24 05:21:31 +000013
14struct D { };
15struct E : D { };
16struct F : E { };
17
18struct G : E, F { };
19SA(3, sizeof(G) == 2);
Anders Carlsson60265042009-09-25 00:02:51 +000020
Anders Carlssonfbbce492009-09-25 01:23:32 +000021struct Empty { Empty(); };
Anders Carlsson60265042009-09-25 00:02:51 +000022
Anders Carlssonfbbce492009-09-25 01:23:32 +000023struct I : Empty {
24 Empty e;
Anders Carlsson60265042009-09-25 00:02:51 +000025};
26SA(4, sizeof(I) == 2);
Anders Carlssonfbbce492009-09-25 01:23:32 +000027
28struct J : Empty {
29 Empty e[2];
30};
31SA(5, sizeof(J) == 3);