// RUN: clang -fsyntax-only -verify %s
class A { };

class B1 : A { };

class B2 : virtual A { };

class B3 : virtual virtual A { }; // expected-error{{duplicate 'virtual' in base specifier}}

class C : public B1, private B2 { };


class D;		// expected-note {{forward declaration of 'class D'}}

class E : public D { }; // expected-error{{base class has incomplete type}}

typedef int I;

class F : public I { }; // expected-error{{base specifier must name a class}}

union U1 : public A { }; // expected-error{{unions cannot have base classes}}

union U2 {};

class G : public U2 { }; // expected-error{{unions cannot be base classes}}

typedef G G_copy;
typedef G G_copy_2;
typedef G_copy G_copy_3;

class H : G_copy, A, G_copy_2, // expected-error{{base class 'G_copy' specified more than once as a direct base class}}
          public G_copy_3 { }; // expected-error{{base class 'G_copy' specified more than once as a direct base class}}

// RUN: clang -fsyntax-only -verify %s
class A { };

class B1 : A { };

class B2 : virtual A { };

class B3 : virtual virtual A { }; // expected-error{{duplicate 'virtual' in base specifier}}

class C : public B1, private B2 { };


class D;

class E : public D { }; // expected-error{{base class has incomplete type}}

typedef int I;

class F : public I { }; // expected-error{{base specifier must name a class}}

union U1 : public A { }; // expected-error{{unions cannot have base classes}}

union U2 {};

class G : public U2 { }; // expected-error{{unions cannot be base classes}}

typedef G G_copy;
typedef G G_copy_2;
typedef G_copy G_copy_3;

class H : G_copy, A, G_copy_2, // expected-error{{base class 'G_copy' specified more than once as a direct base class}}
          public G_copy_3 { }; // expected-error{{base class 'G_copy' specified more than once as a direct base class}}

--- 
+++ 
@@ -10,7 +10,7 @@
 class C : public B1, private B2 { };
 
 
-class D;
+class D;		// expected-note {{forward declaration of 'class D'}}
 
 class E : public D { }; // expected-error{{base class has incomplete type}}
 
Add expected note.  Surely people test before the check in stuff.


git-svn-id: ffe668792ed300d6c2daa1f6eba2e0aa28d7ec6c@64565 91177308-0d34-0410-b5e6-96231b3b80d8
