aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/mips/mips.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2011-09-05 19:38:20 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2011-09-05 19:38:20 +0000
commit1ab9ec7b7fa55245a78720a49e9284fd64d04536 (patch)
tree80f4c0e2813fc781efdfd18548d72d04529a7b09 /gcc/config/mips/mips.c
parent70847a486f113c4e151d04094ffd8a53991d3131 (diff)
downloadgcc-1ab9ec7b7fa55245a78720a49e9284fd64d04536.zip
gcc-1ab9ec7b7fa55245a78720a49e9284fd64d04536.tar.gz
gcc-1ab9ec7b7fa55245a78720a49e9284fd64d04536.tar.bz2
mips.c (mips_gimplify_va_arg_expr): Unshare off.
gcc/ * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off. Fix the type of the BIT_AND_EXPR. From-SVN: r178556
Diffstat (limited to 'gcc/config/mips/mips.c')
-rw-r--r--gcc/config/mips/mips.c4
1 files changed, 2 insertions, 2 deletions
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);
}