From: bonzini Date: Tue, 17 Aug 2004 07:40:22 +0000 (+0000) Subject: gcc/ChangeLog: X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=c738d48dadc16518041091a80cca42c0a9bc0128 gcc/ChangeLog: 2004-08-17 Paolo Bonzini PR middle-end/17036 * fold-const.c (fold): Check for integer operand when folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew Pinski . gcc/testsuite/ChangeLog: 2004-08-17 Paolo Bonzini * gcc.dg/pr17036-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86112 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7f581a9f4b4..ece9c7b89c3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2004-08-17 Paolo Bonzini + PR middle-end/17036 + * fold-const.c (fold): Check for integer operand when + folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew + Pinski . + +2004-08-17 Paolo Bonzini + * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO. No need to check if in a cross configuration. * configure: Regenerate. @@ -131,10 +138,9 @@ 2004-08-16 Nathanael Nerode * tree-ssa-copyrename.c (copy_rename_partition_coalesce): - Check for arificial variables, not is_gimple_tmp_var. + Check for artificial variables, not is_gimple_tmp_var. * tree-ssa-live.c (var_union): Likewise. ->>>>>>> 2.4930 2004-08-16 Nathan Sidwell * calls.c (load_register_parameters): Remove spurious FIXME token. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index c404613f842..319e455f433 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -8859,6 +8859,7 @@ fold (tree expr) tree tem = TREE_OPERAND (arg0, 0); STRIP_NOPS (tem); if (TREE_CODE (tem) == RSHIFT_EXPR + && TREE_CODE (TREE_OPERAND (tem, 1)) == INTEGER_CST && (unsigned HOST_WIDE_INT) tree_log2 (arg1) == TREE_INT_CST_LOW (TREE_OPERAND (tem, 1))) return fold (build2 (BIT_AND_EXPR, type, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 319fe1da9ec..0f65b738180 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-08-17 Paolo Bonzini + + * gcc.dg/pr17036-1.c: New test. + 2004-08-16 Devang Patel * gcc.dg/darwin-20040809-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr17036-1.c b/gcc/testsuite/gcc.dg/pr17036-1.c new file mode 100644 index 00000000000..ea2c9caf6f9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr17036-1.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ + +int main () +{ + int R, N = 4; + unsigned int A = 2; + signed int B = 2; + ((B >> N) & 1) ? 1 : 0; + ((A >> N) & 1) ? 1 : 0; + return 0; +}