[Bug target/27829] New: ICE/abort in shift_op, at config/arm/arm.c:7917 with asm from testsuite/gcc.dg/pr21255-2-mb.c
flash at pobox dot com
gcc-bugzilla@gcc.gnu.org
Wed May 31 01:56:00 GMT 2006
Calling an ARM-targeted GCC 3.4.4 on the testsuite file gcc.dg/pr21255-2-mb.c
results in "internal compiler error: in shift_op, at config/arm/arm.c:7917".
A slightly reduced version of the file is:
double d;
double
f (void)
{
double r;
asm ("mov %S1,%S0; mov %R1,%R0" : "=&r" (r) : "m" (d));
return r;
}
The relevant source seems to be:
if (GET_CODE (XEXP (op, 1)) == REG || GET_CODE (XEXP (op, 1)) == SUBREG)
*amountp = -1;
else if (GET_CODE (XEXP (op, 1)) == CONST_INT)
*amountp = INTVAL (XEXP (op, 1));
else
abort ();
CodeSourcery versions 3.4.4 (release) (CodeSourcery ARM 2005q3-2) and
2006q1/4.1.0 give a similar error.
x86 GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2), and a checking=all build of 4.1.0
instead give an apparently reasonable rejection message: "error: invalid `asm':
invalid operand code `R'".
================
Here's the session; I'll attach the preprocessed source.
48>
/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/armv5te-softfloat-linux-gnu-gcc
-v -save-temps /opt/Gcc-4.1.0-dist/gcc/testsuite/gcc.dg/pr21255-2-mb.c
Reading specs from
/home/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/../lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/specs
Configured with:
/home/kenneth.albanowski/projects/dev/open-source/crosstool/main/dist/build/armv5te-softfloat-linux-gnu/gcc-3.4.4-glibc-2.3.5/gcc-3.4.4/configure
--target=armv5te-softfloat-linux-gnu --host=i686-host_pc-linux-gnu
--prefix=/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu
--with-float=soft --with-arch=armv5te --enable-cxx-flags=-march=armv5te
--with-headers=/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/armv5te-softfloat-linux-gnu/include
--with-local-prefix=/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/armv5te-softfloat-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit
--enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.4
/home/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/../libexec/gcc/armv5te-softfloat-linux-gnu/3.4.4/cc1
-E -quiet -v -iprefix
/home/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/../lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/
-D__ARM_ARCH_5TE__ /opt/Gcc-4.1.0-dist/gcc/testsuite/gcc.dg/pr21255-2-mb.c
-march=armv5te -msoft-float -o pr21255-2-mb.i
ignoring duplicate directory
"/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/include"
ignoring duplicate directory
"/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/../../../../armv5te-softfloat-linux-gnu/sys-include"
ignoring duplicate directory
"/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/../../../../armv5te-softfloat-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/home/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/../lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/include
/home/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/../lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/../../../../armv5te-softfloat-linux-gnu/sys-include
/home/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/../lib/gcc/armv5te-softfloat-linux-gnu/3.4.4/../../../../armv5te-softfloat-linux-gnu/include
End of search list.
/home/opt/crosstool/gcc-3.4.4-glibc-2.3.5/armv5te-softfloat-linux-gnu/bin/../libexec/gcc/armv5te-softfloat-linux-gnu/3.4.4/cc1
-fpreprocessed pr21255-2-mb.i -quiet -dumpbase pr21255-2-mb.c -march=armv5te
-msoft-float -auxbase pr21255-2-mb -version -o pr21255-2-mb.s
GNU C version 3.4.4 (armv5te-softfloat-linux-gnu)
compiled by GNU C version 3.3.5 (Debian 1:3.3.5-8ubuntu2).
GGC heuristics: --param ggc-min-expand=63 --param ggc-min-heapsize=62500
/opt/Gcc-4.1.0-dist/gcc/testsuite/gcc.dg/pr21255-2-mb.c: In function `f':
/opt/Gcc-4.1.0-dist/gcc/testsuite/gcc.dg/pr21255-2-mb.c:19: internal compiler
error: in shift_op, at config/arm/arm.c:7917
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
--
Summary: ICE/abort in shift_op, at config/arm/arm.c:7917 with asm
from testsuite/gcc.dg/pr21255-2-mb.c
Product: gcc
Version: 3.4.4
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: flash at pobox dot com
GCC target triplet: armv5te-softfloat-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27829
More information about the Gcc-bugs
mailing list