From 2a94c462098bef0aed8f7c214147d641a1bfb6c5 Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Tue, 19 Sep 2017 00:05:54 -0400 Subject: [PATCH] Bug 522459 - NPE in ExecRangeBasedFor.loopOverArray() Change-Id: Ife66cef5ca07655371bf83489881d9f2baf61f92 --- .../core/dom/parser/cpp/semantics/ExecRangeBasedFor.java | 3 +++ 1 file changed, 3 insertions(+) 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);