public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/28777] New: Zerodetection (i != 0) compiled with -O2 don't work
@ 2006-08-18 20:48 hgsawicki at web dot de
2006-08-18 21:09 ` [Bug tree-optimization/28777] " pinskia at gcc dot gnu dot org
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: hgsawicki at web dot de @ 2006-08-18 20:48 UTC (permalink / raw)
To: gcc-bugs
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2251 bytes --]
Compiling the following code with -O2 produces an buggy excecutable:
(Using no optimization or -O1 produces an valid excecutable)
~~~ snip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <iostream>
int main( void )
{
for ( int i = 1; i != 0; i = i + 1 )
{
if ( ! (i % 100000000) )
{
std::cout << i << std::endl;
if ( i == 0 )
{
std::cout << i << std::endl;
}
}
}
return 0;
}
~~~ snip ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Commands to build and execute:
~/c++work/multtest> g++ -O2 -o multtest main.cpp
~/c++work/multtest> ./multtest
100000000
200000000
:
-200000000
-100000000
0
100000000
200000000
: // and continues
== Environment =======================================
~/c++work/multtest> gcc --version
gcc (GCC) 4.1.1 (Gentoo 4.1.1)
Copyright (C) 2006 Free Software Foundation, Inc.
Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es
gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE.
~/c++work/multtest> uname --all
Linux atlantis 2.6.17-gentoo-r5 #5 SMP PREEMPT Mon Aug 14 19:48:18 CEST 2006
i686 AMD Athlon(tm) XP 2500+ AuthenticAMD GNU/Linux
~/c++work/multtest> cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 10
model name : AMD Athlon(tm) XP 2500+
stepping : 0
cpu MHz : 1837.783
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up ts
bogomips : 3679.34
--
Summary: Zerodetection (i != 0) compiled with -O2 don't work
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hgsawicki at web dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28777
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/28777] Zerodetection (i != 0) compiled with -O2 don't work
2006-08-18 20:48 [Bug c++/28777] New: Zerodetection (i != 0) compiled with -O2 don't work hgsawicki at web dot de
@ 2006-08-18 21:09 ` pinskia at gcc dot gnu dot org
2006-08-19 15:26 ` rguenth at gcc dot gnu dot org
2006-08-21 5:03 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-08-18 21:09 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from pinskia at gcc dot gnu dot org 2006-08-18 21:08 -------
This is most likely a dup of another bug which was fixed in 4.2.0.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|major |normal
Component|c++ |tree-optimization
Keywords| |wrong-code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28777
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/28777] Zerodetection (i != 0) compiled with -O2 don't work
2006-08-18 20:48 [Bug c++/28777] New: Zerodetection (i != 0) compiled with -O2 don't work hgsawicki at web dot de
2006-08-18 21:09 ` [Bug tree-optimization/28777] " pinskia at gcc dot gnu dot org
@ 2006-08-19 15:26 ` rguenth at gcc dot gnu dot org
2006-08-21 5:03 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-08-19 15:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from rguenth at gcc dot gnu dot org 2006-08-19 15:26 -------
It is signed overflow being undefined and so the i == 0 test being optimized
away.
Use -fwrapv or an unsigned loop counter.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28777
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug tree-optimization/28777] Zerodetection (i != 0) compiled with -O2 don't work
2006-08-18 20:48 [Bug c++/28777] New: Zerodetection (i != 0) compiled with -O2 don't work hgsawicki at web dot de
2006-08-18 21:09 ` [Bug tree-optimization/28777] " pinskia at gcc dot gnu dot org
2006-08-19 15:26 ` rguenth at gcc dot gnu dot org
@ 2006-08-21 5:03 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-08-21 5:03 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from pinskia at gcc dot gnu dot org 2006-08-21 05:03 -------
(In reply to comment #2)
> It is signed overflow being undefined and so the i == 0 test being optimized
> away.
> Use -fwrapv or an unsigned loop counter.
And the "!= 0" is being optimized to 1 because signed overflow is undefined.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28777
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-08-21 5:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-08-18 20:48 [Bug c++/28777] New: Zerodetection (i != 0) compiled with -O2 don't work hgsawicki at web dot de
2006-08-18 21:09 ` [Bug tree-optimization/28777] " pinskia at gcc dot gnu dot org
2006-08-19 15:26 ` rguenth at gcc dot gnu dot org
2006-08-21 5:03 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).