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 4c4ac69fa2a..1985379bfa0 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 @@ -10160,7 +10160,6 @@ public class AST2TemplateTests extends AST2TestBase { public void testNoexceptSpecifierInTypeTemplateArgument_511186() throws Exception { parseAndCheckBindings(); } - // namespace ns { // // template @@ -10180,4 +10179,18 @@ public class AST2TemplateTests extends AST2TestBase { public void testFriendFunctionDeclarationInNamespace_513681() throws Exception { parseAndCheckBindings(); } + + // template + // class foobar {}; + // + // template + // void waldo(foobar) {} + // + // void bar() { + // foobar obj; + // waldo(obj); // Error: Invalid arguments + // } + public void testDependentSizeofInDefaultArgument_513430() throws Exception { + parseAndCheckBindings(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalBinaryTypeId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalBinaryTypeId.java index 35b8d2e1a5e..86b23e9f7c4 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalBinaryTypeId.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalBinaryTypeId.java @@ -153,6 +153,6 @@ public class EvalBinaryTypeId extends CPPDependentEvaluation { @Override public boolean referencesTemplateParameter() { - return false; + return CPPTemplates.isDependentType(fType1) || CPPTemplates.isDependentType(fType2); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalUnaryTypeID.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalUnaryTypeID.java index 93f0ad62977..6492ea83476 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalUnaryTypeID.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalUnaryTypeID.java @@ -234,6 +234,6 @@ public class EvalUnaryTypeID extends CPPDependentEvaluation { @Override public boolean referencesTemplateParameter() { - return false; + return CPPTemplates.isDependentType(fOrigType); } }