From mboxrd@z Thu Jan 1 00:00:00 1970 From: marcus@gnu.org To: gcc-gnats@gcc.gnu.org Subject: optimization/2967: gcc-2.95.4 hits internal error on the Hurd source with -O3 Date: Sat, 26 May 2001 17:46:00 -0000 Message-id: <20010527004107.10757.qmail@sourceware.cygnus.com> X-SW-Source: 2001-05/msg00884.html List-Id: >Number: 2967 >Category: optimization >Synopsis: gcc-2.95.4 hits internal error on the Hurd source with -O3 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Sat May 26 17:46:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Marcus Brinkmann >Release: gcc version 2.95.4 20010506 (Debian prerelease) >Organization: >Environment: Debian GNU/Linux unstable for i386-linux cross compilation via a different specs file and a gcc wrapper with i386-gnu as host arch >Description: When compiling the Hurd, I get an ice in libdiskfs. The Hurd is compiled with -O3 by default, and makes heavy use of inlining. i386-gnu-gcc -O -Wall -g -O3 -I. -I../../libdiskfs -I.. -I../.. -I../../include -D_GNU_SOURCE -c -o file-syncfs.o ../../libdiskfs/file-syncfs.c -v -save-temps Reading specs from /usr/lib/gcc-lib/i386-gnu/2.95.4/specs gcc version 2.95.4 20010506 (Debian prerelease) /usr/lib/gcc-lib/i386-gnu/2.95.4/cpp0 -lang-c -nostdinc -v -I. -I../../libdiskfs -I.. -I../.. -I../../include -D__GNUC__=2 -D__GNUC_MINOR__=95 -Di386 -Dunix -DMACH -D__GNU__ -D__i386__ -D__unix__ -D__MACH__ -D__GNU__ -D__i386 -D__unix -D__MACH -Acpu(i386) -Amachine(i386) -Asystem(unix) -Asystem(mach) -Asystem(gnu) -D__OPTIMIZE__ -g -Wall -D_GNU_SOURCE -isystem /usr/lib/gcc-lib/i386-gnu/2.95.4/include -isystem /usr/i386-gnu/include ../../libdiskfs/file-syncfs.c file-syncfs.i GNU CPP version 2.95.4 20010506 (Debian prerelease) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: . ../../libdiskfs .. ../.. ../../include /usr/lib/gcc-lib/i386-gnu/2.95.4/include /usr/i386-gnu/include End of search list. The following default directories have been omitted from the search path: /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3 /usr/local/include /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../i386-linux/include /usr/lib/gcc-lib/i386-linux/2.95.4/include /usr/include End of omitted list. /usr/lib/gcc-lib/i386-gnu/2.95.4/cc1 file-syncfs.i -quiet -dumpbase file-syncfs.c -g -O -O3 -Wall -version -o file-syncfs.s GNU C version 2.95.4 20010506 (Debian prerelease) (i386-linux) compiled by GNU C version 2.95.4 20010506 (Debian prerelease). ../../libdiskfs/file-syncfs.c: In function `helper': ../../libdiskfs/file-syncfs.c:61: Internal compiler error: ../../libdiskfs/file-syncfs.c:61: internal error--unrecognizable insn: (insn/i 112 111 113 (parallel[ (set (reg/v:SI 42) (asm_operands/v ("xchgl %0, %1") ("=&r") 0[ (reg:SI 41) ] [ (asm_input:SI ("0")) ] ("/usr/i386-gnu/include/machine-lock.h") 53)) (set (mem/v:SI (reg/v:SI 39) 0) (asm_operands/v ("xchgl %0, %1") ("=m") 1[ (reg:SI 41) ] [ (asm_input:SI ("0")) ] ("/usr/i386-gnu/include/machine-lock.h") 53)) ] ) -1 (insn_list 106 (insn_list 111 (nil))) (expr_list:REG_DEAD (reg:SI 41) (nil))) >How-To-Repeat: I simply compile the source file. >Fix: A work around is available. If compiled with -O2, gcc works fine. >Release-Note: >Audit-Trail: >Unformatted: