From 223df2e0727ed813384c88dff42d3f98af7a8bbf Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Fri, 3 Oct 2014 18:00:11 -0700 Subject: [PATCH] Bug 445911 - NPE in CPPTemplates.createParameterMap --- .../core/dom/parser/cpp/semantics/CPPTemplates.java | 6 ++++++ 1 file changed, 6 insertions(+) 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 cd4e128bcd4..61f6c9595ac 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 @@ -704,6 +704,9 @@ public class CPPTemplates { ICPPAliasTemplate aliasTemplate = (ICPPAliasTemplate) template; ICPPTemplateArgument[] args = createTemplateArgumentArray(id); args = addDefaultArguments(aliasTemplate, args, id); + if (args == null) { + return new ProblemBinding(id, IProblemBinding.SEMANTIC_INVALID_TEMPLATE_ARGUMENTS, templateName.toCharArray()); + } ICPPTemplateParameterMap parameterMap = createParameterMap(aliasTemplate, args); IType aliasedType = aliasTemplate.getType(); IBinding owner = template.getOwner(); @@ -716,6 +719,9 @@ public class CPPTemplates { ICPPTemplateArgument[] args = createTemplateArgumentArray(id); ICPPAliasTemplate aliasTemplate = aliasTemplateInstance.getTemplateDefinition(); args = addDefaultArguments(aliasTemplate, args, id); + if (args == null) { + return new ProblemBinding(id, IProblemBinding.SEMANTIC_INVALID_TEMPLATE_ARGUMENTS, templateName.toCharArray()); + } ICPPTemplateParameterMap parameterMap = createParameterMap(aliasTemplate, args); IType aliasedType = aliasTemplateInstance.getType(); IBinding owner = aliasTemplateInstance.getOwner();