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)