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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110621
138bc75d-0d04-0410-961f-
82ee72b054a4
+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.
+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
--- /dev/null
+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
+
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;
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);