[Bug tree-optimization/31605] [4.2/4.3 Regression] VRP eliminates a useful test due with conversion from unsigned int to int
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Apr 17 19:28:00 GMT 2007
------- Comment #4 from pinskia at gcc dot gnu dot org 2007-04-17 20:27 -------
And it is a bug on the 4.2 branch.
Before Ian's patch we got the following ranges for the testcase in comment #2:
D.1528_1: VARYING
start_2: VARYING
D.1528_3: VARYING
cur_bitshift_4: ~[0, 0] EQUIVALENCES: { } (0 elements)
start_5: [0, 0fffffff8] EQUIVALENCES: { start_2 } (1 elements)
<retval>_6: VARYING
start_9: [0fffffff9, +INF] EQUIVALENCES: { start_2 } (1 elements)
After we get:
D.1528_1: VARYING
start_2: VARYING
D.1528_3: VARYING
cur_bitshift_4: [-INF(OVF), -2147483648] EQUIVALENCES: { } (0 elements)
start_5: [0, 0fffffff8] EQUIVALENCES: { start_2 } (1 elements)
<retval>_6: VARYING
start_9: [0fffffff9, +INF] EQUIVALENCES: { start_2 } (1 elements)
Before:
Visiting statement:
cur_bitshift_4 = (int) start_9;
Found new range for cur_bitshift_4: ~[0, 0]
After:
Visiting statement:
cur_bitshift_4 = (int) start_9;
Found new range for cur_bitshift_4: [-INF(OVF), -2147483648]
That is just incorrect.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[4.3 Regression] VRP |[4.2/4.3 Regression] VRP
|eliminates a useful test due|eliminates a useful test due
|with conversion from |with conversion from
|unsigned int to int |unsigned int to int
Target Milestone|4.3.0 |4.2.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31605
More information about the Gcc-bugs
mailing list