From f69a613d726ae03fc22b50d68503c5aa5fda982e Mon Sep 17 00:00:00 2001 From: Marco Stornelli Date: Sat, 29 Feb 2020 08:44:13 +0100 Subject: [PATCH] Bug 560636 - Fix exception in findImplicitlyCalledConstructor Change-Id: I5183737d0125713a5c4515752ba13f83df716ac2 --- .../core/dom/parser/cpp/semantics/CPPSemantics.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java index 4e56b8a4bad..e8bb1a3e6e8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java @@ -3779,7 +3779,13 @@ public class CPPSemantics { if (CPPTemplates.isDependentType(sourceType)) { IType[] tmp = { sourceType }; setTargetedFunctionsToUnknown(tmp); - return CPPDeferredFunction.createForCandidates(type.getConstructors()); + ICPPConstructor[] ctors = type.getConstructors(); + if (ctors != null && ctors.length > 0) { + return CPPDeferredFunction.createForCandidates(type.getConstructors()); + } else { + return new ProblemBinding(typeId, ISemanticProblem.BINDING_NOT_FOUND, + type.getNameCharArray()); + } } Cost c; if (calculateInheritanceDepth(sourceType, type) >= 0) {