summaryrefslogtreecommitdiff
path: root/optimize.c
diff options
context:
space:
mode:
Diffstat (limited to 'optimize.c')
-rw-r--r--optimize.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/optimize.c b/optimize.c
index df72d56..619f19b 100644
--- a/optimize.c
+++ b/optimize.c
@@ -327,7 +327,9 @@ peephole (node_t *node,
*changed = TRUE;
}
else if (node_is (node0, NODE_DYN_LABEL) &&
- node_is (node1, NODE_DYN_GOTO))
+ node_is (node1, NODE_DYN_GOTO) &&
+ node0->dyn_label.expression->common.level ==
+ node0->dyn_label.definition->level)
{
node_new_goto (
node0->dyn_label.label, node0, NULL);