From 76c3b8b7b1054d3fc9ddae7ba863827d349ac802 Mon Sep 17 00:00:00 2001 From: law Date: Fri, 4 Jul 2003 22:00:19 +0000 Subject: * expr.c (do_store_flag): Pass in the correct result type when calling fold_single_bit_test. * fold-const.c (fold_single_bit_test): Use result_type for the result when folding a sign bit test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68940 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/expr.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/expr.c') diff --git a/gcc/expr.c b/gcc/expr.c index f735f95515c..56d733f2d0f 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -9998,9 +9998,12 @@ do_store_flag (tree exp, rtx target, enum machine_mode mode, int only_cheap) if ((code == NE || code == EQ) && TREE_CODE (arg0) == BIT_AND_EXPR && integer_zerop (arg1) && integer_pow2p (TREE_OPERAND (arg0, 1))) - return expand_expr (fold_single_bit_test (code == NE ? NE_EXPR : EQ_EXPR, - arg0, arg1, type), - target, VOIDmode, EXPAND_NORMAL); + { + tree type = (*lang_hooks.types.type_for_mode) (mode, unsignedp); + return expand_expr (fold_single_bit_test (code == NE ? NE_EXPR : EQ_EXPR, + arg0, arg1, type), + target, VOIDmode, EXPAND_NORMAL); + } /* Now see if we are likely to be able to do this. Return if not. */ if (! can_compare_p (code, operand_mode, ccp_store_flag)) -- cgit v1.2.3