blob: a79b6caac983f28d03b2fd2a675bb159e8ce16b0 [file] [log] [blame]
Douglas Gregor7ad83902008-11-05 04:29:56 +00001// RUN: clang -fsyntax-only -verify %s
2class A {
3 int m;
4};
5
6class B : public A {
7public:
8 B() : A(), m(1), n(3.14) { }
9
10private:
11 int m;
12 float n;
13};
14
15
16class C : public virtual B {
17public:
18 C() : B() { }
19};
20
21class D : public C {
22public:
23 D() : B(), C() { }
24};
25
26class E : public D, public B {
27public:
28 E() : B(), D() { } // expected-error{{base class initializer 'B' names both a direct base class and an inherited virtual base class}}
29};
30
31
32typedef int INT;
33
34class F : public B {
35public:
36 int B;
37
38 F() : B(17),
39 m(17), // expected-error{{member initializer 'm' does not name a non-static data member or base class}}
40 INT(17) // expected-error{{constructor initializer 'INT' does not name a class}}
41 {
42 }
43};
Douglas Gregor3f08d182008-11-10 16:59:40 +000044
45class G : A {
46 G() : A(10); // expected-error{{expected '{'}}
47};