Fix PR clang/3291
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61886 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index 49719ab..351694c 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -343,11 +343,11 @@
}
}
+ if (!LookInParent && !Ctx->isTransparentContext())
+ return 0;
+
Ctx = Ctx->getParent();
}
-
- if (!LookInParent && !Ctx->isTransparentContext())
- return 0;
}
}
diff --git a/test/SemaCXX/qualified-id-lookup.cpp b/test/SemaCXX/qualified-id-lookup.cpp
index 0ef8e69..c0d1ca3 100644
--- a/test/SemaCXX/qualified-id-lookup.cpp
+++ b/test/SemaCXX/qualified-id-lookup.cpp
@@ -1,5 +1,4 @@
// RUN: clang -fsyntax-only -verify %s
-
namespace Ns {
int f(); // expected-note{{previous declaration is here}}
@@ -71,5 +70,18 @@
}
}
+// PR clang/3291
+namespace a {
+ namespace a { // A1
+ namespace a { // A2
+ int i;
+ }
+ }
+}
+void test_a() {
+ a::a::i = 3; // expected-error{{no member named 'i'}}
+ a::a::a::i = 4;
+}
+