[Bug target/44618] [4.4/4.5 regression] wrong code with -frename-registers

bernhard.kaindl at thalesgroup dot com gcc-bugzilla@gcc.gnu.org
Fri Feb 17 11:11:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44618

Bernhard Kaindl <bernhard.kaindl at thalesgroup dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bernhard.kaindl at
                   |                            |thalesgroup dot com

--- Comment #31 from Bernhard Kaindl <bernhard.kaindl at thalesgroup dot com> 2012-02-17 11:03:13 UTC ---
(In reply to comment #30)
> A year ago when I opened the bug, it was affecting all branches.
> When it was finally approved (David E.), I re-factored the patch.
> 
> At this point I found 4.4 did not need the patch any more.

I cannot confirm this as of 4.4.6. gcc-4.4.6 still produces the bug:

echo 'int calc(int j){if (j==0)return 0;return calc(j-1)*(j+1);}' >rename.c
powerpc-aeos5-linux-gcc rename.c -Os -frename-registers -S -v 2>&1|sed
s,/tag/mt/gcc.gnu.org/4.4.6-plf2.1-pre1/rhe5/x86/toolchain/ppc-aeos5,/SYSROOT,g
&& grep -B1 restgpr rename.s
Using built-in specs.
Target: powerpc-aeos5-linux
Configured with:
/home/mt/gcc.gnu.org/4.4.6-plf2.1-pre1/build/rhe5/x86/src/os/oe/trunk/446r01/work/i686-ppce300c3-sdk-aeos5-linux/gcc-cross-sdk-4.4.6-r0.1/gcc-4.4.6/configure
--build=i686-linux --host=i686-linux --target=powerpc-aeos5-linux
--prefix=/SYSROOT --exec_prefix=/SYSROOT --bindir=/SYSROOT/bin
--sbindir=/SYSROOT/bin --libexecdir=/SYSROOT/libexec --datadir=/SYSROOT/share
--sysconfdir=/SYSROOT/etc --sharedstatedir=/SYSROOT/share/com
--localstatedir=/SYSROOT/var --libdir=/SYSROOT/lib
--includedir=/SYSROOT/include --oldincludedir=/SYSROOT/include
--infodir=/SYSROOT/share/info --mandir=/SYSROOT/share/man --disable-nls
--enable-clocale=generic --with-gnu-ld --without-cloog --enable-shared
--enable-languages=c,c++ --enable-threads=posix --disable-multilib --enable-c99
--enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=powerpc-aeos5-linux- --enable-libssp --disable-bootstrap
--disable-libgomp --disable-libmudflap --without-long-double-128
--with-sysroot=/SYSROOT/powerpc-aeos5-linux
--with-build-time-tools=/home/mt/gcc.gnu.org/4.4.6-plf2.1-pre1/build/rhe5/x86/src/os/oe/trunk/446r01/cross/ppce300c3/powerpc-aeos5-linux/bin
--with-build-sysroot=/home/mt/gcc.gnu.org/4.4.6-plf2.1-pre1/build/rhe5/x86/src/os/oe/trunk/446r01/staging/ppce300c3-aeos5-linux
--with-mpfr=/home/mt/gcc.gnu.org/4.4.6-plf2.1-pre1/build/rhe5/x86/src/os/oe/trunk/446r01/staging/i686-linux/usr
--disable-libgomp --enable-libmudflap --without-long-double-128
--enable-__cxa_atexit
Thread model: posix
gcc version 4.4.6 (GCC) 
COLLECT_GCC_OPTIONS='-Os' '-frename-registers' '-S' '-v'
 /nfsshares/tas/SYSROOT/bin/../libexec/gcc/powerpc-aeos5-linux/4.4.6/cc1 -quiet
-v -iprefix /nfsshares/tas/SYSROOT/bin/../lib/gcc/powerpc-aeos5-linux/4.4.6/
-isysroot /nfsshares/tas/SYSROOT/bin/../powerpc-aeos5-linux -D__unix__
-D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux
-Asystem=unix -Asystem=posix rename.c -quiet -dumpbase rename.c -auxbase rename
-Os -version -frename-registers -o rename.s
ignoring nonexistent directory
"/nfsshares/tas/SYSROOT/bin/../powerpc-aeos5-linux/usr/local/include"
ignoring duplicate directory
"/nfsshares/tas/SYSROOT/bin/../lib/gcc/../../lib/gcc/powerpc-aeos5-linux/4.4.6/include"
ignoring duplicate directory
"/nfsshares/tas/SYSROOT/bin/../lib/gcc/../../lib/gcc/powerpc-aeos5-linux/4.4.6/include-fixed"
ignoring duplicate directory
"/nfsshares/tas/SYSROOT/bin/../lib/gcc/../../lib/gcc/powerpc-aeos5-linux/4.4.6/../../../../powerpc-aeos5-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /nfsshares/tas/SYSROOT/bin/../lib/gcc/powerpc-aeos5-linux/4.4.6/include
 /nfsshares/tas/SYSROOT/bin/../lib/gcc/powerpc-aeos5-linux/4.4.6/include-fixed

/nfsshares/tas/SYSROOT/bin/../lib/gcc/powerpc-aeos5-linux/4.4.6/../../../../powerpc-aeos5-linux/include
 /nfsshares/tas/SYSROOT/bin/../powerpc-aeos5-linux/usr/include
End of search list.
GNU C (GCC) version 4.4.6 (powerpc-aeos5-linux)
        compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-44), GMP
version 4.2.4, MPFR version 2.3.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 08c68272536463fe09fe596df17cf497
COMPILER_PATH=/nfsshares/tas/SYSROOT/bin/../libexec/gcc/powerpc-aeos5-linux/4.4.6/:/nfsshares/tas/SYSROOT/bin/../libexec/gcc/:/nfsshares/tas/SYSROOT/bin/../lib/gcc/powerpc-aeos5-linux/4.4.6/../../../../powerpc-aeos5-linux/bin/
LIBRARY_PATH=/nfsshares/tas/SYSROOT/bin/../lib/gcc/powerpc-aeos5-linux/4.4.6/:/nfsshares/tas/SYSROOT/bin/../lib/gcc/:/nfsshares/tas/SYSROOT/bin/../lib/gcc/powerpc-aeos5-linux/4.4.6/../../../../powerpc-aeos5-linux/lib/:/nfsshares/tas/SYSROOT/bin/../powerpc-aeos5-linux/lib/:/nfsshares/tas/SYSROOT/bin/../powerpc-aeos5-linux/usr/lib/
COLLECT_GCC_OPTIONS='-Os' '-frename-registers' '-S' '-v'
        addi 4,1,16
        b _restgpr_31_x

> I submitted patch for all others (4.5, 4.6, 4.7). As I sad before,
> it was already  approved,
> but I depend on David to do the commit as I don't have WAA.
> 
> He said he was busy, it took almost 2 weeks for him to do the commit on 4.7,
> few days latter it came the commit on 4.6. And the 4.5 never came...

As far as I can tell from the above test, applying the fix to the 4.4 branch
with target milestone 4.4.7 is still in order.

(besides committing the fix to 4.5 as well)

David, still busy?



More information about the Gcc-bugs mailing list