[PATCH][TUPLES] One more rs6000 stdarg unsharing fix

Jakub Jelinek jakub@redhat.com
Fri Jul 4 08:17:00 GMT 2008


On Thu, Jul 03, 2008 at 06:46:04PM -0400, David Edelsohn wrote:
> 	And another one...
> 
>         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Unshare t.
> 
> Index: rs6000.c
> ===================================================================
> --- rs6000.c    (revision 137436)
> +++ rs6000.c    (working copy)
> @@ -6930,7 +6930,7 @@
>           && TYPE_MODE (type) == SDmode)
>         t = build2 (POINTER_PLUS_EXPR, TREE_TYPE (t), t, size_int (size));
>  
> -      t = build2 (GIMPLE_MODIFY_STMT, void_type_node, addr, t);
> +      t = build2 (GIMPLE_MODIFY_STMT, void_type_node, addr, unshare_expr (t));
>        gimplify_and_add (t, pre_p);
>  
>        t = build1 (GOTO_EXPR, void_type_node, lab_over);

This unshare_expr seems to be at a wrong spot.  Together with
what you need to unshare (sav, right?) you unshare many freshly created
trees.

	Jakub



More information about the Gcc-patches mailing list