From 5b4eb6beb2afb5a3607fd737915dc991fa044a15 Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Sun, 25 Sep 2022 10:40:08 +0200 Subject: [PATCH] fix #2713 --- Optimizer/Optimizer.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Optimizer/Optimizer.cs b/Optimizer/Optimizer.cs index bec4bbe4a..2b3a27a3f 100644 --- a/Optimizer/Optimizer.cs +++ b/Optimizer/Optimizer.cs @@ -18,6 +18,7 @@ namespace PascalABCCompiler private bool condition_block = false; private bool has_returns = false; private bool has_goto = false; + private Dictionary processed_methods = new Dictionary(); private bool no_infinite_recursion; public Optimizer() @@ -140,6 +141,9 @@ namespace PascalABCCompiler private void VisitMethod(common_method_node cmn) { + if (processed_methods.ContainsKey(cmn)) + return; + processed_methods.Add(cmn, cmn); if (extended_mode) VisitVariables(cmn.var_definition_nodes_list); foreach (var_definition_node vdn in cmn.var_definition_nodes_list)