This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/25160] New: ICE in print_operand if using -mfloat-gprs w/ non-854x -mcpu option
- From: "rmansfield at qnx dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Nov 2005 19:06:03 -0000
- Subject: [Bug target/25160] New: ICE in print_operand if using -mfloat-gprs w/ non-854x -mcpu option
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
void foo(double a) {}
ryan@avarice:~$
/archive/bt/crosstool/powerpc-linux-gnuspe/head-glibc-2.3.3/bin/powerpc-linux-gnuspe-gcc
-mfloat-gprs=double -mcpu=common ~/t.c
/home/ryan/t.c: In function 'foo':
/home/ryan/t.c:1: internal compiler error: in print_operand, at
config/rs6000/rs6000.c:10674
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
ryan@avarice:~$
/archive/bt/crosstool/powerpc-linux-gnuspe/head-glibc-2.3.3/bin/powerpc-linux-gnuspe-gcc
-v
Using built-in specs.
Target: powerpc-linux-gnuspe
Configured with:
/archive/bt/ryan/crosstool-0.28-rc37/build/powerpc-linux-gnuspe/head-glibc-2.3.3/head/configure
--target=powerpc-linux-gnuspe --host=i686-host_pc-linux-gnu
--prefix=/archive/bt/crosstool/powerpc-linux-gnuspe/head-glibc-2.3.3
--with-local-prefix=/archive/bt/crosstool/powerpc-linux-gnuspe/head-glibc-2.3.3/powerpc-linux-gnuspe
--disable-multilib --with-newlib --without-headers --disable-nls
--enable-threads=no --enable-symvers=gnu --enable-__cxa_atexit
--enable-languages=c --disable-shared
Thread model: single
gcc version 4.2.0 20051129 (experimental)
According to the documentation, -mfloat-gprs is only available on the
MPC8540/MPC8548. So should there be a check like the following?
Index: rs6000.c
===================================================================
--- rs6000.c (revision 107671)
+++ rs6000.c (working copy)
@@ -1789,6 +1789,8 @@
case OPT_mfloat_gprs_:
rs6000_explicit_options.float_gprs = true;
+ if (rs6000_cpu != PROCESSOR_PPC8540)
+ error ("unsupported architecture for -mfloat-gprs");
if (! strcmp (arg, "yes") || ! strcmp (arg, "single"))
rs6000_float_gprs = 1;
else if (! strcmp (arg, "double"))
Also, I have another test case which may* cause an ICE in extract_insn, at
recog.c when using -mfloat-gprs=double and -mcpu=common. Since they are caused
by the same invalid combination of switches, should I open a PR for it or will
this one suffice?
*I found the ICE on the e500 branch. The test case is in C++ so I haven't have
time to build powerpc-linux-gnuspe-g++ from the head yet.
--
Summary: ICE in print_operand if using -mfloat-gprs w/ non-854x
-mcpu option
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rmansfield at qnx dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-host_pc-linux-gnu
GCC target triplet: powerpc-linux-gnuspe
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25160