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) {