diff options
-rw-r--r-- | test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp b/test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp index f22e4a467e..5f63392469 100644 --- a/test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp +++ b/test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp @@ -1,9 +1,29 @@ // RUN: %clang_cc1 -fsyntax-only -verify %s // PR5741 -struct A { - struct B { }; - struct C; -}; +namespace test0 { + struct A { + struct B { }; + struct C; + }; -struct A::C : B { }; + struct A::C : B { }; +} + +namespace test1 { + struct Opaque1 {}; + struct Opaque2 {}; + + struct A { + struct B { B(Opaque1); }; + }; + struct B { + B(Opaque2); + }; + + struct C : A, B { + // Apparently the base-or-member lookup is actually ambiguous + // without this qualification. + C() : A(), test1::B(Opaque2()) {} + }; +} |