OSDN Git Service

* tree-inline.c (declare_return_variable): Fix ICE while
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Jul 2010 23:41:10 +0000 (23:41 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Jul 2010 23:41:10 +0000 (23:41 +0000)
inlining DECL_BY_VALUE function not in SSA form

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162024 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-inline.c

index afbbb31..af20304 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-09  Jan Hubicka  <jh@suse.cz>
+
+       * tree-inline.c (declare_return_variable): Fix ICE while
+       inlining DECL_BY_VALUE function not in SSA form
+
 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
 
        PR tree-optimization/44576
index 069dcb3..57364e4 100644 (file)
@@ -2903,7 +2903,10 @@ declare_return_variable (copy_body_data *id, tree return_slot, tree modify_dest,
          add_referenced_var (temp);
        }
       insert_decl_map (id, result, temp);
-      temp = remap_ssa_name (gimple_default_def (id->src_cfun, result), id);
+      /* When RESULT_DECL is in SSA form, we need to use it's default_def
+        SSA_NAME.  */
+      if (gimple_in_ssa_p (id->src_cfun) && gimple_default_def (id->src_cfun, result))
+        temp = remap_ssa_name (gimple_default_def (id->src_cfun, result), id);
       insert_init_stmt (id, entry_bb, gimple_build_assign (temp, var));
     }
   else