blob: ded901074958b1de2be5ac2100c35e6f8cb78e0d [file] [log] [blame]
Douglas Gregora65e8dd2008-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}}
Chris Lattner2bd4a5a2009-02-19 23:45:49 +000040 INT(17) // expected-error{{constructor initializer 'INT' (aka 'int') does not name a class}}
Douglas Gregora65e8dd2008-11-05 04:29:56 +000041 {
42 }
43};
Douglas Gregord2c14ad2008-11-10 16:59:40 +000044
45class G : A {
46 G() : A(10); // expected-error{{expected '{'}}
47};