From cfb47f9a65f4426c28fd1515930d65d8c564e06a Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Thu, 22 Dec 2011 11:24:31 +0100 Subject: [PATCH] Bug 365981: Undetected syntax failure instantiating function template --- .../cdt/core/parser/tests/ast2/AST2TemplateTests.java | 9 +++++++++ .../core/dom/parser/cpp/semantics/CPPTemplates.java | 2 ++ 2 files changed, 11 insertions(+) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java index 141ba5d68db..e0e7283568a 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java @@ -5638,4 +5638,13 @@ public class AST2TemplateTests extends AST2BaseTest { public void testTemplateAmbiguityInDeleteExpression_364225() throws Exception { parseAndCheckBindings(); } + + // template void foo(T); + // template void foo(T, typename T::type* = 0); + // int main() { + // foo(0); + // } + public void testSFINE_365981() throws Exception { + parseAndCheckBindings(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java index bdc7c70adcf..7bd216f78b4 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java @@ -2342,6 +2342,8 @@ public class CPPTemplates { } } } + } else if (t != owner) { + return new ProblemBinding(unknown.getUnknownName(), IProblemBinding.SEMANTIC_BAD_SCOPE); } }