diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp --- a/clang/lib/AST/DeclBase.cpp +++ b/clang/lib/AST/DeclBase.cpp @@ -1771,7 +1771,8 @@ if (!hasExternalVisibleStorage() && !hasExternalLexicalStorage() && Name) { lookup_result LookupResults = lookup(Name); Results.insert(Results.end(), LookupResults.begin(), LookupResults.end()); - return; + if (!Results.empty()) + return; } // If we have a lookup table, check there first. Maybe we'll get lucky. diff --git a/clang/unittests/AST/ASTImporterTest.cpp b/clang/unittests/AST/ASTImporterTest.cpp --- a/clang/unittests/AST/ASTImporterTest.cpp +++ b/clang/unittests/AST/ASTImporterTest.cpp @@ -4924,9 +4924,9 @@ FooDC->getRedeclContext()->localUncachedLookup(FooName, FoundDecls); EXPECT_EQ(FoundDecls.size(), 0u); - // Cannot find in the LookupTable of its LexicalDC (A). + // Finds via linear search of its LexicalDC (A). FooLexicalDC->getRedeclContext()->localUncachedLookup(FooName, FoundDecls); - EXPECT_EQ(FoundDecls.size(), 0u); + EXPECT_EQ(FoundDecls.size(), 1u); // Can't find in the list of Decls of the DC. EXPECT_EQ(findInDeclListOfDC(FooDC, FooName), nullptr); diff --git a/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py b/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py --- a/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py +++ b/lldb/test/API/lang/cpp/gmodules/template-with-same-arg/TestTemplateWithSameArg.py @@ -34,7 +34,6 @@ self.main_source_file = lldb.SBFileSpec("main.cpp") @add_test_categories(["gmodules"]) - @skipIf(bugnumber='rdar://96581048') def test_same_template_arg(self): lldbutil.run_to_source_breakpoint(self, "Break here", self.main_source_file) @@ -51,7 +50,6 @@ ]) @add_test_categories(["gmodules"]) - @skipIf(bugnumber='rdar://96581048') def test_duplicate_decls(self): lldbutil.run_to_source_breakpoint(self, "Break here", self.main_source_file)