From f3dc14467cd956b29eb528d9d0e0803202a6b1b5 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Wed, 28 Nov 2007 09:02:16 +0000 Subject: [PATCH] Name resolution with nested linkage specifications, bug 183126. --- .../cdt/core/parser/tests/ast2/AST2Tests.java | 13 +++++++++++++ .../internal/core/dom/parser/cpp/CPPSemantics.java | 1 + 2 files changed, 14 insertions(+) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java index 95012655a2d..39a64183c80 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java @@ -4155,4 +4155,17 @@ public class AST2Tests extends AST2BaseTest { assertField(col.getName(33).resolveBinding(), "x", "S2"); assertField(col.getName(34).resolveBinding(), "x", "S2"); } + + // extern "C" { + // extern "C" { + // void externFunc(); + // } + // } + // void test() { + // externFunc(); + // } + public void testBug183126_nestedLinkageSpecs() throws Exception { + StringBuffer buffer = getContents(1)[0]; + parseAndCheckBindings(buffer.toString(), ParserLanguage.CPP); + } } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java index b6bc56afdba..1f5fc6c406c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPSemantics.java @@ -1497,6 +1497,7 @@ public class CPPSemantics { nodes = ((ICPPASTLinkageSpecification)item).getDeclarations(); idx = 0; item = nodes[idx]; + continue; } }