From: ebotcazou Date: Sun, 30 Mar 2008 15:54:05 +0000 (+0000) Subject: * fold-const.c (fold_binary) : Add missing conversions. X-Git-Tag: upstream/4.9.2~43001 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=54bd17de2417e43de3c780efddd0665067dc7760;p=platform%2Fupstream%2Flinaro-gcc.git * fold-const.c (fold_binary) : Add missing conversions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133732 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a008d0d..4d954bf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2008-03-30 Eric Botcazou + + * fold-const.c (fold_binary) : Add missing conversions. + 2008-03-30 Richard Guenther PR middle-end/31023 diff --git a/gcc/fold-const.c b/gcc/fold-const.c index c420b79..6e5d940 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -10425,8 +10425,10 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1) { return fold_build1 (BIT_NOT_EXPR, type, build2 (BIT_AND_EXPR, type, - TREE_OPERAND (arg0, 0), - TREE_OPERAND (arg1, 0))); + fold_convert (type, + TREE_OPERAND (arg0, 0)), + fold_convert (type, + TREE_OPERAND (arg1, 0)))); } /* See if this can be simplified into a rotate first. If that diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5b61aee5..3124811 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2008-03-30 Eric Botcazou + + * gnat.dg/bit_packed_array2.adb: New test. + 2008-03-30 Paul Thomas PR fortran/35740 diff --git a/gcc/testsuite/gnat.dg/bit_packed_array2.adb b/gcc/testsuite/gnat.dg/bit_packed_array2.adb new file mode 100644 index 0000000..b403122 --- /dev/null +++ b/gcc/testsuite/gnat.dg/bit_packed_array2.adb @@ -0,0 +1,19 @@ +-- { dg-do compile } +-- { dg-options "-gnatws" } + +procedure Bit_Packed_Array2 is + + type Bit_Array is array (integer range <>) of Boolean; + pragma Pack(Bit_Array); + + b1 : Bit_Array(1..64); + b2 : Bit_array(1..64); + res : Bit_array(1..64); + +begin + + if (not((not b1) or (not b2))) /= res then + null; + end if; + +end;