diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/ExecRangeBasedFor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/ExecRangeBasedFor.java index 2f5a6e53992..a0366f69944 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/ExecRangeBasedFor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/ExecRangeBasedFor.java @@ -133,6 +133,9 @@ public class ExecRangeBasedFor implements ICPPExecution { ICPPEvaluation valueRange = initClauseEval.computeForFunctionCall(record, context.recordStep()); ExecDeclarator declaratorExec = (ExecDeclarator) declarationExec.getDeclaratorExecutions()[0]; IVariable rangeVar = (IVariable) declaratorExec.getDeclaredBinding(); + if (rangeVar == null) { + return ExecIncomplete.INSTANCE; + } boolean rangeIsConst = SemanticUtil.isConst(initClauseEval.getType(context.getPoint())); IType type = SemanticUtil.getNestedType(valueRange.getType(context.getPoint()), ALLCVQ | TDEF | REF);