# gcc -v Using built-in specs. Target: x86_64-pc-linux-gnu Configured with: /var/tmp/portage/gcc-4.1.0_beta20050730/work/gcc-4.1-20050730/configure --enable-version-specific-runtime-libs --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.0-beta20050730 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.0-beta20050730/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.0-beta20050730 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.0-beta20050730/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.0-beta20050730/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.0-beta20050730/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --enable-multilib --disable-libgcj --enable-languages=c,c++,f95 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 4.1.0 20050730 (experimental) # gcc -march=athlon64 -O1 -fforce-addr -c /tmp/j1.c rlogin.c: In function 'do_rlogin': rlogin.c:181: error: unrecognizable insn: (insn 116 187 118 13 (parallel [ (set (mem/s/j:SI (reg/f:DI 102) [0 termio.c_iflag+0 S4 A64]) (ior:SI (mem/s/j:SI (reg/f:DI 103) [0 termio.c_iflag+0 S4 A64]) (const_int 1280 [0x500]))) (clobber (reg:CC 17 flags)) ]) -1 (nil) (nil)) rlogin.c:181: internal compiler error: in instantiate_virtual_regs_in_insn, at function.c:1539 j1.c will be attached. (It's a preprocessed rlogin.c from the "shadow" package)
Created attachment 9410 [details] preprocessed source to reproduce
Also happens on i686-pc-linux-gnu. Reducing.
Confirmed. Reduced testcase (compile with "-O -fforce-addr"): ================= void foo() { char c; c |= 1; bar(&c); } =================
Subject: Bug 23196 CVSROOT: /cvs/gcc Module name: gcc Changes by: rth@gcc.gnu.org 2005-08-02 20:39:24 Modified files: gcc : ChangeLog explow.c Added files: gcc/testsuite/gcc.c-torture/compile: 20050802-1.c Log message: PR 23196 * explow.c (memory_address): Remove special-case for virtual_stack_vars_rtx and virtual_incoming_args_rtx. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9638&r2=2.9639 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/explow.c.diff?cvsroot=gcc&r1=1.148&r2=1.149 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/20050802-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
Fixed.