https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65172

            Bug ID: 65172
           Summary: rs6000 rtl checking failure
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: amodra at gmail dot com

Found when building libjava with rtl checking on.

/home/amodra/build/gcc/./gcc/gcj
-B/home/amodra/build/gcc/powerpc64-linux/libjava/
-B/home/amodra/build/gcc/./gcc/ -B/usr/powerpc64-linux/bin/
-B/usr/powerpc64-linux/lib/ -isystem /usr/powerpc64-linux/include -isystem
/usr/powerpc64-linux/sys-include -mminimal-toc -fclasspath=
-fbootclasspath=/home/amodra/src/gcc/libjava/classpath/lib --encoding=UTF-8
-Wno-deprecated -fbootstrap-classes -findirect-dispatch -fno-bootstrap-classes
-fno-indirect-classes
-fsource-filename=/home/amodra/build/gcc/powerpc64-linux/libjava/classpath/tools/all-classes.lst
-g -O2 -c classpath/tools/tools.zip  -fPIC -o
classpath/tools/.libs/libgcj_tools_la-tools.o
/home/amodra/src/gcc/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java:
In class 'gnu.classpath.tools.rmic.SourceGiopRmicCompiler':
[snip]
/home/amodra/src/gcc/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java:322:0:
internal compiler error: RTL check: expected code 'reg', have 'plus' in
rhs_regno, at rtl.h:1710
     return new MethodGenerator(m, this);
 ^
0x107149c7 rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int,
char const*)
    /home/amodra/src/gcc/gcc/rtl.c:731
0x10b2c507 rhs_regno
    /home/amodra/src/gcc/gcc/rtl.h:1710
0x10b34adf rhs_regno
    /home/amodra/src/gcc/gcc/config/rs6000/rs6000.c:27229
0x10b34adf mem_locations_overlap
[snip]


Breakpoint 1, get_memref_parts (mem=mem@entry=0xfff84a1c900,
base=base@entry=0xfffffffd840, offset=offset@entry=0xfffffffd828, 
    size=size@entry=0xfffffffd820) at
/home/amodra/src/gcc/gcc/config/rs6000/rs6000.c:27188
27188          *base = XEXP (addr_rtx, 0);
(gdb) p debug_rtx(addr_rtx)
(plus:DI (plus:DI (reg/f:DI 9 9 [162])
        (const_int 65536 [0x10000]))
    (const_int -31752 [0xffffffffffff83f8]))
$5 = void

Reply via email to