blob: 6b450b097ac7df9a296543f2520c69e2c2d61ebc [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}}
40 INT(17) // expected-error{{constructor initializer 'INT' does not name a class}}
41 {
42 }
43};