This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

[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


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


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