diff options
Diffstat (limited to 'clang/test/SemaCXX/member-name-lookup.cpp')
-rw-r--r-- | clang/test/SemaCXX/member-name-lookup.cpp | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/clang/test/SemaCXX/member-name-lookup.cpp b/clang/test/SemaCXX/member-name-lookup.cpp index 871bc994568..9fcd922ddf7 100644 --- a/clang/test/SemaCXX/member-name-lookup.cpp +++ b/clang/test/SemaCXX/member-name-lookup.cpp @@ -1,36 +1,33 @@ // RUN: clang-cc -fsyntax-only -verify %s -// XFAIL -// fails due to exact diagnostic matching - struct A { - int a; // expected-note{{member found by ambiguous name lookup}} + int a; // expected-note 4{{member found by ambiguous name lookup}} static int b; - static int c; // expected-note{{member found by ambiguous name lookup}} + static int c; // expected-note 4{{member found by ambiguous name lookup}} enum E { enumerator }; typedef int type; static void f(int); - void f(float); // expected-note{{member found by ambiguous name lookup}} + void f(float); // expected-note 2{{member found by ambiguous name lookup}} static void static_f(int); static void static_f(double); }; struct B : A { - int d; // expected-note{{member found by ambiguous name lookup}} + int d; // expected-note 2{{member found by ambiguous name lookup}} enum E2 { enumerator2 }; - enum E3 { enumerator3 }; // expected-note{{member found by ambiguous name lookup}} + enum E3 { enumerator3 }; // expected-note 2{{member found by ambiguous name lookup}} }; struct C : A { - int c; // expected-note{{member found by ambiguous name lookup}} - int d; // expected-note{{member found by ambiguous name lookup}} + int c; // expected-note 2{{member found by ambiguous name lookup}} + int d; // expected-note 2{{member found by ambiguous name lookup}} - enum E3 { enumerator3_2 }; // expected-note{{member found by ambiguous name lookup}} + enum E3 { enumerator3_2 }; // expected-note 2{{member found by ambiguous name lookup}} }; struct D : B, C { @@ -50,7 +47,7 @@ void test_lookup(D d) { D::E2 e2 = D::enumerator2; // okay - D::E3 e3; // expected-error{{member 'E3' found in multiple base classes of different types}} + D::E3 e3; // expected-error{{multiple base classes}} } void D::test_lookup() { @@ -70,18 +67,18 @@ void D::test_lookup() { } struct B2 : virtual A { - int d; // expected-note{{member found by ambiguous name lookup}} + int d; // expected-note 2{{member found by ambiguous name lookup}} enum E2 { enumerator2 }; - enum E3 { enumerator3 }; // expected-note{{member found by ambiguous name lookup}} + enum E3 { enumerator3 }; // expected-note 2 {{member found by ambiguous name lookup}} }; struct C2 : virtual A { - int c; // expected-note{{member found by ambiguous name lookup}} - int d; // expected-note{{member found by ambiguous name lookup}} + int c; // expected-note 2{{member found by ambiguous name lookup}} + int d; // expected-note 2{{member found by ambiguous name lookup}} - enum E3 { enumerator3_2 }; // expected-note{{member found by ambiguous name lookup}} + enum E3 { enumerator3_2 }; // expected-note 2{{member found by ambiguous name lookup}} }; struct D2 : B2, C2 { @@ -147,6 +144,5 @@ struct HasAnotherMemberType : HasMemberType1, HasMemberType2 { }; struct UsesAmbigMemberType : HasMemberType1, HasMemberType2 { - type t; // expected-error{{member 'type' found in multiple base classes of different types}} \ - // expected-error{{expected ';' at end of declaration list}} + type t; // expected-error{{member 'type' found in multiple base classes of different types}} }; |