aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorRichard Biener <rguenth@gcc.gnu.org>2011-07-20 13:36:30 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-07-20 13:36:30 +0000
commitc56db1005607c9d0fb552280c2065ecbe7bb2b23 (patch)
tree4c128ff41af2ff7489d956b7ab66a144e7334910 /gcc/tree.c
parentdca412a1ddaae99a8672bfbed37fe951f486b6bc (diff)
downloadgcc-c56db1005607c9d0fb552280c2065ecbe7bb2b23.zip
gcc-c56db1005607c9d0fb552280c2065ecbe7bb2b23.tar.gz
gcc-c56db1005607c9d0fb552280c2065ecbe7bb2b23.tar.bz2
re PR middle-end/18908 (Missed folding opportunities with bools)
2011-07-20 Richard Guenther <rguenther@suse.de> PR middle-end/18908 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision. * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X. * gcc.dg/tree-ssa/pr18908.c: New testcase. * gcc.dg/tree-ssa/bitwise-sink.c: Adjust. From-SVN: r176510
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 8c44851..30ff80f 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -1759,9 +1759,7 @@ integer_all_onesp (const_tree expr)
if (!uns)
return 0;
- /* Note that using TYPE_PRECISION here is wrong. We care about the
- actual bits, not the (arbitrary) range of the type. */
- prec = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (expr)));
+ prec = TYPE_PRECISION (TREE_TYPE (expr));
if (prec >= HOST_BITS_PER_WIDE_INT)
{
HOST_WIDE_INT high_value;