This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

optimization/8758: gcc 3.2.1 gives bad values to a long long variable when optimizing with O2


>Number:         8758
>Category:       optimization
>Synopsis:       gcc 3.2.1 gives bad values to a long long variable when optimizing with O2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Fri Nov 29 08:46:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Helmstetter Bernard
>Release:        gcc version 3.2.1
>Organization:
>Environment:
PC athlon, Mandrake linux 9.0 

Configured with: ./configure  : (reconfigured) ./configure --prefix=/disks/kyu/bhelmste/gcc-bin/
Thread model: posix
>Description:
The program gives a bad value to the long long variable hashval. First he uses the value in registers though the value in memory has changed, then he uses the value in memory but even this value is wrong.

bash-2.05b$ a.out
hashval should be 0, 
but hashval = 1122334455667788
and hashval = 4013d34008048230
>How-To-Repeat:
gcc -O2 bug.c
a.out
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bug.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.c"

I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgY2hhbmdlX3N0YWNrX2VudHJ5IHsKICBpbnQgKmFk
ZHJlc3M7CiAgaW50IHZhbHVlOwp9IGNoYW5nZV9zdGFja1sxMDAwXSwgCiAgKmNoYW5nZV9zdGFj
a19wb2ludGVyOwoKaW50IG1haW4oKQp7CiAgbG9uZyBsb25nIGhhc2h2YWwgPSAwOwogIAogIGNo
YW5nZV9zdGFja19wb2ludGVyID0gJmNoYW5nZV9zdGFja1swXTsKICAKICBjaGFuZ2Vfc3RhY2tf
cG9pbnRlcisrLT5hZGRyZXNzID0gTlVMTDsKICBjaGFuZ2Vfc3RhY2tfcG9pbnRlci0+YWRkcmVz
cyA9IChpbnQgKikgJmhhc2h2YWw7CiAgY2hhbmdlX3N0YWNrX3BvaW50ZXIrKy0+dmFsdWUgPSAq
KChpbnQgKikgJmhhc2h2YWwpOwogIGNoYW5nZV9zdGFja19wb2ludGVyLT5hZGRyZXNzID0gKChp
bnQgKikgJmhhc2h2YWwpKzE7CiAgY2hhbmdlX3N0YWNrX3BvaW50ZXIrKy0+dmFsdWUgPSAqKCgo
aW50ICopICZoYXNodmFsKSsxKTsKCiAgaGFzaHZhbCA9IDB4MTEyMjMzNDQ1NTY2Nzc4ODsKICAK
ICBpZiAoaGFzaHZhbCAhPSAweDExMjIzMzQ0NTU2Njc3ODgpCiAgICA7CiAgCiAgd2hpbGUgKCgt
LWNoYW5nZV9zdGFja19wb2ludGVyKS0+YWRkcmVzcykKICAgICooY2hhbmdlX3N0YWNrX3BvaW50
ZXItPmFkZHJlc3MpID0gY2hhbmdlX3N0YWNrX3BvaW50ZXItPnZhbHVlOwoKICBpZiAoaGFzaHZh
bCAhPSAwKQogICAgewogICAgICBwcmludGYoImhhc2h2YWwgc2hvdWxkIGJlIDAsIFxuYnV0IGhh
c2h2YWwgPSAlbGx4XG4iLCBoYXNodmFsKTsKICAgICAgcHJpbnRmKCJhbmQgaGFzaHZhbCA9ICVs
bHhcbiIsIGhhc2h2YWwpOwogICAgfQogIHJldHVybiAwOwp9Cg==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]