Patchwork Fix PR53437

login
register
mail settings
Submitter Richard Guenther
Date May 22, 2012, 9:30 a.m.
Message ID <Pine.LNX.4.64.1205221130010.5860@jbgna.fhfr.qr>
Download mbox | patch
Permalink /patch/160575/
State New
Headers show

Comments

Richard Guenther - May 22, 2012, 9:30 a.m.
This fixes PR53437, at -O0 as we are not having debug stmts there,
we need a dummy init stmt.

Bootstrapped and tested on x86_64-unknown-linux-gnu applied.

Richard.

2012-05-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53437
	* tree-inline.c (setup_one_parameter): Create a dummy init
	statement for unused parameters when not optimizing.

Patch

Index: gcc/tree-inline.c
===================================================================
--- gcc/tree-inline.c	(revision 187709)
+++ gcc/tree-inline.c	(working copy)
@@ -2701,7 +2701,8 @@  setup_one_parameter (copy_body_data *id,
       STRIP_USELESS_TYPE_CONVERSION (rhs);
 
       /* If we are in SSA form properly remap the default definition
-         or omit the initialization if the parameter is unused.  */
+         or assign to a dummy SSA name if the parameter is unused and
+	 we are not optimizing.  */
       if (gimple_in_ssa_p (cfun) && is_gimple_reg (p))
 	{
 	  if (def)
@@ -2711,6 +2712,11 @@  setup_one_parameter (copy_body_data *id,
 	      SSA_NAME_IS_DEFAULT_DEF (def) = 0;
 	      set_default_def (var, NULL);
 	    }
+	  else if (!optimize)
+	    {
+	      def = make_ssa_name (var, NULL);
+	      init_stmt = gimple_build_assign (def, rhs);
+	    }
 	}
       else
         init_stmt = gimple_build_assign (var, rhs);