From c8632212ebac0ed4a02538c379ac71eedf1b3c50 Mon Sep 17 00:00:00 2001 From: rsandifo Date: Mon, 5 Sep 2011 19:38:20 +0000 Subject: [PATCH] gcc/ * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off. Fix the type of the BIT_AND_EXPR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178556 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8c9872..08dd4a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-09-05 Richard Sandiford + + * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off. + Fix the type of the BIT_AND_EXPR. + 2011-09-05 David S. Miller * config.host: Add driver-sparc.o and sparc/x-sparc on diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index f5c4cbe..a5d1eed 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -5601,7 +5601,7 @@ mips_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, } /* [2] Emit code to branch if off == 0. */ - t = build2 (NE_EXPR, boolean_type_node, off, + t = build2 (NE_EXPR, boolean_type_node, unshare_expr (off), build_int_cst (TREE_TYPE (off), 0)); addr = build3 (COND_EXPR, ptr_type_node, t, NULL_TREE, NULL_TREE); @@ -5624,7 +5624,7 @@ mips_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, /* [9] Emit: ovfl = ((intptr_t) ovfl + osize - 1) & -osize. */ t = fold_build_pointer_plus_hwi (unshare_expr (ovfl), osize - 1); u = build_int_cst (TREE_TYPE (t), -osize); - t = build2 (BIT_AND_EXPR, sizetype, t, u); + t = build2 (BIT_AND_EXPR, TREE_TYPE (t), t, u); align = build2 (MODIFY_EXPR, TREE_TYPE (ovfl), unshare_expr (ovfl), t); } -- 2.7.4