tree-inline.c (declare_return_variable): Fix ICE while inlining DECL_BY_VALUE functio...
authorJan Hubicka <jh@suse.cz>
Fri, 9 Jul 2010 23:41:10 +0000 (01:41 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 9 Jul 2010 23:41:10 +0000 (23:41 +0000)
* tree-inline.c (declare_return_variable): Fix ICE while
inlining DECL_BY_VALUE function not in SSA form

From-SVN: r162024

gcc/ChangeLog
gcc/tree-inline.c

index afbbb31e5b62e96cd6085cbe74bc5dd15d2ff464..af20304e85b3351732858537d71a3e4cac10301e 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 069dcb3006d3bc40d3d020a8317c30805e72351e..57364e43721a1d447ef807ae6f62cc8d4ac7391c 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