From dc4ccc6cb47c9778f045288840965ab6e5e00933 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Thu, 5 May 2011 18:47:40 +0200 Subject: [PATCH] Prevent endless recursion in if-conv in endless loops. --- ir/opt/ifconv.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ir/opt/ifconv.c b/ir/opt/ifconv.c index 04502fc45..b22c9db08 100644 --- a/ir/opt/ifconv.c +++ b/ir/opt/ifconv.c @@ -283,6 +283,8 @@ restart: ir_cdep* cdep; pred0 = get_Block_cfgpred_block(block, i); + if (pred0 == block) continue; + for (cdep = find_cdep(pred0); cdep != NULL; cdep = get_cdep_next(cdep)) { const ir_node* dependency = get_cdep_node(cdep); ir_node* projx0 = walk_to_projx(pred0, dependency); @@ -310,6 +312,7 @@ restart: dbg_info* cond_dbg; pred1 = get_Block_cfgpred_block(block, j); + if (pred1 == block) continue; if (!is_cdep_on(pred1, dependency)) continue; -- 2.20.1