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