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
This commit is contained in:
Andrew Pinski 2006-02-05 20:29:10 +00:00 committed by Andrew Pinski
parent d78f3f787f
commit cea0f4f1bd
4 changed files with 31 additions and 2 deletions

View File

@ -1,3 +1,9 @@
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-04 Zdenek Dvorak <dvorakz@suse.cz>
* tree-vrp.c (cfg_loops): Removed.

View File

@ -1,3 +1,8 @@
2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25251
* gfortran.dg/assign_7.f: New test.
2006-02-05 H.J. Lu <hongjiu.lu@intel.com>
PR fortran/26041

View File

@ -0,0 +1,16 @@
C { dg-do compile }
C Option passed to avoid excess errors from obsolete warning
C { dg-options "-w" }
PROGRAM FM013
IF (ICZERO) 31270, 1270, 31270
1270 CONTINUE
1272 ASSIGN 1273 TO J
1273 ASSIGN 1274 TO J
1274 ASSIGN 1275 TO J
GOTO 1276
1275 continue
1276 GOTO J, ( 1272, 1273, 1274, 1275 )
31270 IVDELE = IVDELE + 1
END

View File

@ -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);