From edc74207ded06c2421dd72ad6156a77fb0c0f07e Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguenther@suse.de>
Date: Mon, 26 Jul 2010 14:48:43 +0000
Subject: [PATCH] re PR tree-optimization/45073
 (gfortran.dg/assumed_charlen_function_3.f90 ICEs with -fprofile-generate)

2010-07-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45073
	* gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
	SSA updating on being in SSA form.

From-SVN: r162537
---
 gcc/ChangeLog     | 6 ++++++
 gcc/gimple-fold.c | 9 ++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1b32e5051e0e..66a86e5c7312 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-26  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/45073
+	* gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
+	SSA updating on being in SSA form.
+
 2010-07-26  Richard Guenther  <rguenther@suse.de>
 
 	PR middle-end/45056
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 5953d6a7593c..a5301bad5ed7 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -853,8 +853,11 @@ gimplify_and_update_call_from_tree (gimple_stmt_iterator *si_p, tree expr)
 	  gsi_next (si_p);
 	}
       new_stmt = gsi_stmt (i);
-      find_new_referenced_vars (new_stmt);
-      mark_symbols_for_renaming (new_stmt);
+      if (gimple_in_ssa_p (cfun))
+	{
+	  find_new_referenced_vars (new_stmt);
+	  mark_symbols_for_renaming (new_stmt);
+	}
       /* If the new statement has a VUSE, update it with exact SSA name we
          know will reach this one.  */
       if (gimple_vuse (new_stmt))
@@ -892,7 +895,7 @@ gimplify_and_update_call_from_tree (gimple_stmt_iterator *si_p, tree expr)
 	    SSA_NAME_DEF_STMT (gimple_vdef (stmt)) = laststore;
 	  update_stmt (laststore);
 	}
-      else
+      else if (gimple_in_ssa_p (cfun))
 	{
 	  unlink_stmt_vdef (stmt);
 	  release_defs (stmt);
-- 
GitLab