aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp30
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()) {}
+ };
+}