From mboxrd@z Thu Jan 1 00:00:00 1970 From: christophe.guillon@st.com To: gcc-gnats@gcc.gnu.org Subject: optimization/4620: Wrong code generated with -O2 for sparc-sun-solaris2.5.1 Date: Fri, 19 Oct 2001 09:36:00 -0000 Message-id: <20011019163448.26546.qmail@sourceware.cygnus.com> X-SW-Source: 2001-10/msg00392.html List-Id: >Number: 4620 >Category: optimization >Synopsis: Wrong code generated with -O2 for sparc-sun-solaris2.5.1 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Fri Oct 19 09:36:02 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Christophe Guillon >Release: gcc version 3.0 sparc-sun-solaris2.5.1 >Organization: >Environment: $ uname -a SunOS gnx1635 5.5.1 Generic_103640-34 sun4u sparc $gcc -v Reading specs from /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/specs Configured with: ./configure --prefix=/apa/gnu/SunOS5/.package/gcc-3.0 --x-includes=/usr/openwin/include --x-libraries=/usr/openwin/lib --with-local-prefix=/apa/gnu/SunOS5 Thread model: posix gcc version 3.0 /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/cpp0 -lang-c -v -iprefix /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/ -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=0 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem=unix -Asystem=svr4 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -Wall -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc gcc-bug1.c gcc-bug1.i GNU CPP version 3.0 (cpplib) (sparc) ignoring nonexistent directory "/apa/gnu/SunOS5/gcc/gcc-3.0/sparc-sun-solaris2.5.1/include" ignoring nonexistent directory "/apa/gnu/SunOS5/.package/gcc-3.0/sparc-sun-solaris2.5.1/include" ignoring duplicate directory "/apa/gnu/SunOS5/.package/gcc-3.0/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/include" #include "..." search starts here: #include <...> search starts here: /apa/gnu/SunOS5/gcc/gcc-3.0/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/include /apa/gnu/SunOS5/.package/gcc-3.0/include /usr/include End of search list. /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/cc1 -fpreprocessed gcc-bug1.i -quiet -dumpbase gcc-bug1.c -O2 -Wall -version -o gcc-bug1.s GNU CPP version 3.0 (cpplib) (sparc) GNU C version 3.0 (sparc-sun-solaris2.5.1) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release). /usr/ccs/bin/as -V -Qy -s -o gcc-bug1.o gcc-bug1.s /usr/ccs/bin/as: WorkShop Compilers 4.2 dev 13 May 1996 /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/crt1.o /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/crti.o /usr/ccs/lib/values-Xa.o /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/crtbegin.o -L/apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0 -L/apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib -L/apa/gnu/SunOS5/.package/gcc-3.0/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0 -L/usr/ccs/bin -L/usr/ccs/lib -L/apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/../../.. -L/apa/gnu/SunOS5/.package/gcc-3.0/lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/../../.. gcc-bug1.o -lgcc -lc -lgcc /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/crtend.o /apa/gnu/SunOS5/gcc/gcc-3.0/bin/../lib/gcc-lib/sparc-sun-solaris2.5.1/3.0/crtn.o ld: Software Generation Utilities - Solaris/ELF (3.0) >Description: GCC generates wrong assembly code with -O2 option on the file gcc-bug1.i with -O1 option the code is correct. Regarding the assembly output, it seems that the an store is scheduled above an overlaping load. The output should be : $ ./a.out Should print 1: 1 It is $ ./a.out Should print 1: 0 >How-To-Repeat: $ /apa/gnu/SunOS5/gcc/gcc-3.0/bin/gcc -Wall -O2 gcc-bug1.i $ ./a.out Should print 1: 0 >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="gcc-bug1.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gcc-bug1.i" IyAyICJnY2MtYnVnMS5jIgpleHRlcm4gaW50IHByaW50Zihjb25zdCBjaGFyICosLi4uKTsKCmxv bmcgbG9uZyBsbCA9IDE7CmludCBzd2FwOwoKdm9pZApmX2ZhaWwodm9pZCkgewogIGxvbmcgbG9u ZyBsbGw7CiAgdW5zaWduZWQgKnA7CiAgbGxsID0gbGw7CiAgcCA9ICh1bnNpZ25lZCAqKSZsbGw7 CiAgc3dhcCA9IDE7CiAgcHJpbnRmKCJTaG91bGQgcHJpbnQgMTogJXhcbiIsIHBbc3dhcF0pOwoK fQoKaW50Cm1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewogIGZfZmFpbCgpOwogIHJldHVy biAwOwp9Cg==