This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

For the record: fix to PR/18662


As discussed on GCC list:

2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
	    Diego Novillo  <dnovillo@redhat.com>	    

	PR/18662, also backported from tree-cleanup-branch.
	* tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
	always call maybe_clean_eh_stmt and modify_stmt.

*** tree-ssa-ccp.c	29 Nov 2004 01:08:41 -0000	2.52
--- tree-ssa-ccp.c	29 Nov 2004 01:11:50 -0000
*************** substitute_and_fold (void)
*** 580,593 ****
  	      bool changed = fold_stmt (bsi_stmt_ptr (i));
  	      stmt = bsi_stmt(i);
  	      /* If we folded a builtin function, we'll likely
  		 need to rename VDEFs.  */
  	      if (replaced_address || changed)
! 		{
! 		  mark_new_vars_to_rename (stmt, vars_to_rename);
! 		  if (maybe_clean_eh_stmt (stmt))
! 		    tree_purge_dead_eh_edges (bb);
! 		}
! 	      else
! 		modify_stmt (stmt);
  	    }
  
--- 580,595 ----
  	      bool changed = fold_stmt (bsi_stmt_ptr (i));
  	      stmt = bsi_stmt(i);
+ 
  	      /* If we folded a builtin function, we'll likely
  		 need to rename VDEFs.  */
  	      if (replaced_address || changed)
! 		mark_new_vars_to_rename (stmt, vars_to_rename);
! 
!               /* If we cleaned up EH information from the statement,
!                  remove EH edges.  */
! 	      if (maybe_clean_eh_stmt (stmt))
! 		tree_purge_dead_eh_edges (bb);
! 
! 	      modify_stmt (stmt);
  	    }
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]