optimization/2560: Optimization cause wrong result
c_huang@21cn.com
c_huang@21cn.com
Mon Apr 16 09:16:00 GMT 2001
>Number: 2560
>Category: optimization
>Synopsis: Optimization cause wrong result
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Apr 16 09:16:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: c_huang@21cn.com
>Release: gcc 2.96
>Organization:
>Environment:
RedHat LINUX 7.0 on HP Vectra XU, Pro 200, 64M
>Description:
Optimization level 3 will cause to get wrong result. However, if you change to level 2 or modify the sentense, you will get right results
>How-To-Repeat:
------wrong result-----
$ gcc -O3 tt.cpp -o tt -D makeerr=1
$ ./tt
64 bits: 00005CBA9063FC00 101956356144128
32 bits low: 9063FC00 2422471680
32 bits high 00005CBA 23738
996 Days 21:3:10 <------wrong
clk=4000000 CPS=1000000
CPU clock = 199463975
-----right result-----
$ gcc -O3 tt.cpp -o tt -D makeerr=0
$ ./tt
64 bits: 00005CBB1F9C75AA 101958758987178
32 bits low: 1F9C75AA 530347434
32 bits high 00005CBB 23739
5 Days 21:51:10 <-----right
clk=4010000 CPS=1000000
CPU clock = 199656522
-----right result-----
$ gcc -O2 tt.cpp -o tt -D makeerr=1
$ ./tt
64 bits: 00005CEB7D3B0089 102166488088713
32 bits low: 7D3B0089 2101018761
32 bits high 00005CEB 23787
5 Days 22:12:4 <-----right
clk=4010000 CPS=1000000
CPU clock = 199573463
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list