diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2006-02-05 20:29:10 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2006-02-05 12:29:10 -0800 |
commit | cea0f4f1bd67b7539388cbf2d0fa554c3a88fcf3 (patch) | |
tree | 00d24a9ef41ed731bdefe0def98396adcfa6252a /gcc/tree-cfg.c | |
parent | d78f3f787f098ce3c535883b1ba47c3b1820b983 (diff) | |
download | gcc-cea0f4f1bd67b7539388cbf2d0fa554c3a88fcf3.zip gcc-cea0f4f1bd67b7539388cbf2d0fa554c3a88fcf3.tar.gz gcc-cea0f4f1bd67b7539388cbf2d0fa554c3a88fcf3.tar.bz2 |
re PR tree-optimization/25251 ([4.1 only] NIST Failure - FM013.f at -O2)
2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25251
* tree-cfg.c (cleanup_dead_labels): Also don't remove
forced labels.
2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25251
* gfortran.dg/assign_7.f: New test.
From-SVN: r110621
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 9ba761d..85d588a 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -1108,7 +1108,8 @@ cleanup_dead_labels (void) for_each_eh_region (update_eh_label); /* Finally, purge dead labels. All user-defined labels and labels that - can be the target of non-local gotos are preserved. */ + can be the target of non-local gotos and labels which have their + address taken are preserved. */ FOR_EACH_BB (bb) { block_stmt_iterator i; @@ -1128,7 +1129,8 @@ cleanup_dead_labels (void) if (label == label_for_this_bb || ! DECL_ARTIFICIAL (label) - || DECL_NONLOCAL (label)) + || DECL_NONLOCAL (label) + || FORCED_LABEL (label)) bsi_next (&i); else bsi_remove (&i, true); |