c/9150: [3.4 regression] ICE in recog.c:2177 using -march=pentium3 and -fPIC

andrew@andypo.net andrew@andypo.net
Fri Jan 3 05:56:00 GMT 2003


>Number:         9150
>Category:       c
>Synopsis:       [3.4 regression] ICE in recog.c:2177 using -march=pentium3 and -fPIC
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 02 21:56:00 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Pollard
>Release:        gcc-3.4-20030102
>Organization:
>Environment:
i686-pc-linux-gnu/RedHat8.0 on a PIII system
Binutils 2.13.90.0.16

Compiler configured with:

/usr/local/src/cvs/gcc/configure --prefix=/usr/local/gcc-3.4-20030102-i686-pc-linux-gnu --with-gnu-as --with-gnu-ld --enable-version-specific-runtime-libs --enable-threads=posix --with-dwarf2 --disable-shared --enable-languages=c++ --enable-__cxa_atexit

Compiler compiled with:

make BOOT_CFLAGS='-O2 -march=pentium3' CFLAGS='-O2 -march=pentium3' CXXFLAGS='-O2 -march=pentium3' LIBCFLAGS='-g -O2 -march=pentium3' LIBCXXFLAGS='-g -O2 -march=pentium3 -fno-implicit-templates' bootstrap
>Description:
The following code fragment causes an ICE

ice.c:
-----------------------
float
foo(float bar)
{
    return ((bar < 0) ? -bar : bar);
}
-----------------------

Using gcc-3.4-20030102, with -march=pentium3 -fPIC

% gcc34 -march=pentium3 -fpic ice.c
ice.c: In function `foo':
ice.c:6: error: unrecognizable insn:
(insn 18 33 19 2 (nil) (set (reg:V4SF 63)
        (mem/u/f:V4SF (symbol_ref/u:SI ("*.LC1")) [0 S16 A128])) -1 (nil)
    (expr_list:REG_EQUAL (const_vector:V4SF [
                (const_double:SF 0 [0x0] -0.0 [-0x0.0p+0])
                (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
                (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
                (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])
            ])
        (nil)))
ice.c:6: internal compiler error: in extract_insn, at recog.c:2177
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

Removing either the -march or -fPIC makes it work.

This worked with gcc-3.3 (and earlier), compiled and configured in a similar way.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list