------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-12 06:54 ------- 4.0 produced: D.1463 = n - -1073741824; if (D.1463 >= 0)
Which is wrong as overflow is undefined. 4.1 produces: (n >= -1073741824) as overflow is undefined. This was exposed by: 2005-07-02 Andrew Pinski <[EMAIL PROTECTED]> PR middle-end/14490 * fold-const.c (fold_binary): Handle the return value of fold_to_nonsharp_ineq_using_bound if we get back the same operand back. Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1". Which means I have to look into it since I exposed it. We should be subtracting using unsigned mode. -- What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|c |middle-end Ever Confirmed| |1 GCC target triplet|i686-pc-linux-gnu | Keywords| |wrong-code Known to fail| |4.1.0 Known to work| |4.0.2 Last reconfirmed|0000-00-00 00:00:00 |2005-07-12 06:54:16 date| | Summary|-1073741824 <= n && n <= |[4.1 Regression] -1073741824 |1073741823 is true where n |<= n && n <= 1073741823 is |is 1073741824 |true where n is 1073741824 Target Milestone|--- |4.1.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22429