diff options
-rw-r--r-- | lib/Sema/SemaLookup.cpp | 3 | ||||
-rw-r--r-- | test/SemaCXX/linkage-spec.cpp | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp index c600f99a40..1d583cc391 100644 --- a/lib/Sema/SemaLookup.cpp +++ b/lib/Sema/SemaLookup.cpp @@ -755,6 +755,9 @@ Sema::CppLookupName(Scope *S, DeclarationName Name, for (; S; S = S->getParent()) { DeclContext *Ctx = static_cast<DeclContext *>(S->getEntity()); + if (Ctx->isTransparentContext()) + continue; + assert(Ctx && Ctx->isFileContext() && "We should have been looking only at file context here already."); diff --git a/test/SemaCXX/linkage-spec.cpp b/test/SemaCXX/linkage-spec.cpp index 864953e9f9..b4c72f557d 100644 --- a/test/SemaCXX/linkage-spec.cpp +++ b/test/SemaCXX/linkage-spec.cpp @@ -25,3 +25,11 @@ extern "C" int const bar; // <rdar://problem/6895431> extern "C" struct bar d; extern struct bar e; + +extern "C++" { + namespace N0 { + struct X0 { + int foo(int x) { return x; } + }; + } +}
\ No newline at end of file |