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;
+}
+