--- Comment #8 from pinskia at gcc dot gnu dot org 2007-05-28 19:48 ---
Fixed.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Status|ASSIGNED
--- Comment #7 from pinskia at gcc dot gnu dot org 2007-05-28 19:48 ---
Subject: Bug 32100
Author: pinskia
Date: Mon May 28 19:47:53 2007
New Revision: 125140
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125140
Log:
2007-05-28 Andrew Pinski <[EMAIL PROTECTED]>
PR tr
--- Comment #6 from pinskia at gcc dot gnu dot org 2007-05-28 19:43 ---
Subject: Bug 32100
Author: pinskia
Date: Mon May 28 19:43:10 2007
New Revision: 125139
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125139
Log:
2007-05-28 Andrew Pinski <[EMAIL PROTECTED]>
PR tr
--- Comment #5 from pinskia at gcc dot gnu dot org 2007-05-26 22:11 ---
+ if ((TYPE_PRECISION (t) != 1 || TYPE_UNSIGNED (t))
Should obviously be:
+ if ((TYPE_PRECISION (type) != 1 || TYPE_UNSIGNED (type))
This is why I should not change my patch after I made it working. Luc
--- Comment #4 from pinskia at gcc dot gnu dot org 2007-05-26 21:51 ---
The fix:
Index: fold-const.c
===
--- fold-const.c(revision 125044)
+++ fold-const.c(working copy)
@@ -13485,9 +13485,14 @@ tree_expr_non
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-05-26 21:42 ---
set_value_range_to_nonnegative returns true which is wrong as the range of
signed:1 is only [-1,0].
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32100
--- Comment #2 from pinskia at gcc dot gnu dot org 2007-05-26 21:38 ---
D.1532_3 = D.1531_2 != 0;
Found new range for D.1532_3: [0, +INF]
So we have a "signed int:1" which we get the wrong range for.
Confirmed, looking more into it.
--
pinskia at gcc dot gnu dot org changed:
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-05-26 21:35 ---
Related to PR 23603.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32100
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
CC||pinskia at gcc dot gnu dot
|