From 0dc04bfd995ca84b3a5c22280f6f633c6beb98ec Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Fri, 28 Dec 2012 17:16:38 -0800 Subject: [PATCH] Bug 392577 - Members of anonymous namespace visible outside file --- .../tests/IndexCPPBindingResolutionTest.java | 23 +++++++++++++++++++ .../core/pdom/dom/cpp/PDOMCPPLinkage.java | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java index cb4c3ffdf96..2925bf8ffa3 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPBindingResolutionTest.java @@ -1715,4 +1715,27 @@ public abstract class IndexCPPBindingResolutionTest extends IndexBindingResoluti getBindingFromASTName("f(a)", 1, ICPPFunction.class); getBindingFromASTName("g(b)", 1, ICPPFunction.class); } + + // namespace ns { + // namespace { + // const char str[] = ""; + // } + // } + + // namespace { + // const char str[] = ""; + // } + // + // namespace ns { + // + // void f(const char* s); + // + // void test() { + // f(str); + // } + // + // } + public void testAnonymousNamespaces_392577() throws Exception { + getBindingFromASTName("f(str)", 1, ICPPFunction.class); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java index 837a013eaa8..80eeb687946 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java @@ -1057,7 +1057,7 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { IBinding owner= binding.getOwner(); if (owner instanceof ICPPNamespace) { if (owner.getNameCharArray().length == 0) { - IASTNode node= ASTInternal.getDeclaredInSourceFileOnly(getPDOM(), owner, false, glob); + IASTNode node= ASTInternal.getDeclaredInSourceFileOnly(getPDOM(), binding, false, glob); if (node != null) { file= wpdom.getFileForASTNode(getLinkageID(), node); }