Article View: gnu.gcc.bug
Article #2320Bug report for gcc 1.33
From: Jim Murray
Date: Fri, 17 Feb 1989 17:59
Date: Fri, 17 Feb 1989 17:59
93 lines
2585 bytes
2585 bytes
Bug report for gcc version 1.33 configured for i386v.
The following program fragment compiles correctly without -O
bug generates an incorrect code with -O.
-------------------------------------------------------------------------
THE PROGRAM:
--------------------------------- snip here -----------------------------
int a;
int b;
main ()
{
if ( a == b || ((--b < 0) ? a : b))
++a;
}
--------------------------------- snip here -----------------------------
THE COMPILATION:
-------------------------------------------------------------------------
gcc -O -S -v test.c
gcc version 1.33
/usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dunix -Di386 -D__unix__ -D__i386__ -D__OPTIMIZE__ test.c /tmp/cca03535.cpp
GNU CPP version 1.33
/usr/local/lib/gcc-cc1 /tmp/cca03535.cpp -quiet -dumpbase test.c -O -version -o test.s
GNU C version 1.33 (80386, ATT syntax) compiled by GNU C version 1.33.
----------------------------------------------------------------------------
THE OUTPUT:
----------------------------------------------------------------------------
.file "test.c"
gcc_compiled.:
.text
.align 4
.globl main
main:
pushl %ebp
movl %esp,%ebp
movl b,%eax
cmpl a,%eax
je .L3
decl b
cmpl $0,b
jle .L4 <---- incorrect branch
cmpl $0,a
jne .L3
jmp .L2
.L4:
cmpl $0,b
je .L2
.L3:
incl a
.L2:
leave
ret
.comm b,4
.comm a,4
-------------------------------------------------------------------------
The output when compiled without -O
-------------------------------------------------------------------------
.file "test.c"
gcc_compiled.:
.text
.align 4
.globl main
main:
pushl %ebp
movl %esp,%ebp
movl b,%eax
cmpl a,%eax
je .L3
decl b
cmpl $0,b
jge .L4 <---- correct branch
cmpl $0,a
jne .L3
jmp .L2
.L4:
cmpl $0,b
jne .L3
jmp .L2
.L5:
.L3:
incl a
.L2:
.L1:
leave
ret
.comm b,4
.comm a,4
------------------------------------------------------------------------
---
Jim Murray encore!cloud9!jjmhome!jjm
2 Mohawk Circle harvard!m2c!jjmhome!jjm
Westboro Mass 01581 jjm%jjmhome@m2c.m2c.org
USA voice (508) 366-2813
Technical Details
Message-ID:
<8902171259.AA04031@jjmhome.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!EDDIE.MIT.EDU!encore!jjmhome!jjmShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!EDDIE.MIT.EDU!encore!jjmhome!jjm From: encore!jjmhome!jjm@EDDIE.MIT.EDU (Jim Murray) Newsgroups: gnu.gcc.bug Subject: Bug report for gcc 1.33 Message-ID: <8902171259.AA04031@jjmhome.UUCP> Date: 17 Feb 89 17:59:11 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 93