From 2fdc2f515a8475c32fb7ff317182114ff47449fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Wed, 3 Oct 2018 18:47:32 +0200 Subject: [PATCH] fix #1315 --- Optimizer/Optimizer.cs | 5 +++++ Optimizer/OptimizerTools.cs | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Optimizer/Optimizer.cs b/Optimizer/Optimizer.cs index 7b0be66cd..f17c93672 100644 --- a/Optimizer/Optimizer.cs +++ b/Optimizer/Optimizer.cs @@ -704,6 +704,11 @@ namespace PascalABCCompiler private void IncreaseNumUseVar(local_block_variable_reference lvr) { VarInfo vi = helper.GetVariable(lvr.var); + if (vi == null) + { + helper.AddVariable(lvr.var); + vi = helper.GetVariable(lvr.var); + } if (vi == null) return; vi.num_use++; vi.act_num_use++; diff --git a/Optimizer/OptimizerTools.cs b/Optimizer/OptimizerTools.cs index 5aa169660..526040b1b 100644 --- a/Optimizer/OptimizerTools.cs +++ b/Optimizer/OptimizerTools.cs @@ -43,7 +43,8 @@ namespace PascalABCCompiler public void AddVariable(var_definition_node vdn) { VarInfo vi = new VarInfo(); - ht[vdn] = vi; + if (ht[vdn] == null) + ht[vdn] = vi; } public VarInfo GetVariable(var_definition_node vdn)