This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

optimization/2967: gcc-2.95.4 hits internal error on the Hurd source with -O3



>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 <marcus@gnu.org>
>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]