[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#742700: spill fail with -fschedule-insns



Package: gcc-4.7
Version: 4.7.2-5
Severity: normal

I have encountered a gcc failure when attempting to compile code for
the Perl module DBD-SQLite on i386.  Steps to reproduce:

$ wget -q http://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.42.tar.gz
$ tar xzf DBD-SQLite-1.42.tar.gz 
$ cc -c -O1 -fschedule-insns -fno-schedule-insns2 DBD-SQLite-1.42/sqlite3.c
DBD-SQLite-1.42/sqlite3.c: In function 'unixLock':
DBD-SQLite-1.42/sqlite3.c:25374:1: error: unable to find a register to spill in class 'AD_REGS'
DBD-SQLite-1.42/sqlite3.c:25374:1: error: this is the insn:
(insn 87 348 93 14 (parallel [
            (set (mem/j/c:DI (plus:SI (reg/f:SI 20 frame)
                        (const_int -20 [0xffffffffffffffec])) [0 lock.l_start+0 S8 A32])
                (sign_extend:DI (reg:SI 118 [ sqlite3PendingByte ])))
            (clobber (reg:CC 17 flags))
            (clobber (scratch:SI))
        ]) DBD-SQLite-1.42/sqlite3.c:25294 125 {extendsidi2_1}
     (expr_list:REG_DEAD (reg:SI 118 [ sqlite3PendingByte ])
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (nil))))
DBD-SQLite-1.42/sqlite3.c:25374: confused by earlier errors, bailing out
Preprocessed source stored into /tmp/ccmHvZ0y.out file, please attach this to your bugreport.

I'm not attaching the source file itself or the preprocessed version that
the error message said to attach, on the basis that they're enormous
and it should be easy for you to reproduce the problem starting by
downloading the source as shown.  If you have difficulty reproducing it,
obviously I can supply these files on request.

I see this on i386 but not on an amd64 machine that has otherwise the
same versions of things installed.

-zefram


Reply to: