Add LLVM runtime checks to build path
[clang/acc.git] / test / SemaCXX / warn-reorder-ctor-initialization.cpp
blob107c89355e6738a882c7ca0ea1add5261dd499e8
1 // RUN: clang-cc -fsyntax-only -Wreorder -verify %s
3 struct BB {};
5 struct BB1 {};
7 class complex : public BB, BB1 {
8 public:
9 complex() : s2(1), // expected-warning {{member 's2' will be initialized after}}
10 s1(1) , // expected-note {{field s1}}
11 s3(3), // expected-warning {{member 's3' will be initialized after}}
12 BB1(), // expected-note {{base 'struct BB1'}} \
13 // expected-warning {{base class 'struct BB1' will be initialized after}}
14 BB() {} // expected-note {{base 'struct BB'}}
15 int s1;
16 int s2;
17 int s3;
18 };
21 // testing virtual bases.
24 struct V {
25 V();
28 struct A : public virtual V {
29 A();
32 struct B : public virtual V {
33 B();
36 struct Diamond : public A, public B {
37 Diamond() : A(), B() {}
41 struct C : public A, public B, private virtual V {
42 C() { }
46 struct D : public A, public B {
47 D() : A(), V() { } // expected-warning {{base class 'struct A' will be initialized after}} \
48 // expected-note {{base 'struct V'}}
52 struct E : public A, public B, private virtual V {
53 E() : A(), V() { } // expected-warning {{base class 'struct A' will be initialized after}} \
54 // expected-note {{base 'struct V'}}
58 struct A1 {
59 A1();
62 struct B1 {
63 B1();
66 struct F : public A1, public B1, private virtual V {
67 F() : A1(), V() { } // expected-warning {{base class 'struct A1' will be initialized after}} \
68 // expected-note {{base 'struct V'}}
71 struct X : public virtual A, virtual V, public virtual B {
72 X(): A(), V(), B() {} // expected-warning {{base class 'struct A' will be initialized after}} \
73 // expected-note {{base 'struct V'}}