Executing on host: /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/objdir/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20050121-1.c -fno-diagnostics-show-caret -w -O0 -lm -o /home/dave/gnu/gcc/objdir/gcc/testsuite/gcc/20050121-1.x0 (timeout = 300) spawn /home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/objdir/gcc/ /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20050121-1.c -fno-diagnostics-show-caret -w -O0 -lm -o /home/dave/gnu/gcc/objdir/gcc/testsuite/gcc/20050121-1.x0 /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20050121-1.c: In function 'foo_char': /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20050121-1.c:33:1: error: unrecognizable insn: (insn 46 25 34 2 (set (reg:SI 20 %r20) (subreg:SI (mem/c:CQI (plus:SI (reg/f:SI 3 %r3) (const_int 22 [0x16])) [0 %sfp+22 S2 A64]) 0)) /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20050121-1.c:33 -1 (nil)) /home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20050121-1.c:33:1: internal compiler error: in extract_insn, at recog.c:2150 0x4c0f9f _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:109 0x4c0ff7 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:117 0x48f52f extract_insn(rtx_def*) ../../gcc/gcc/recog.c:2150 0x48f5b3 extract_insn_cached(rtx_def*) ../../gcc/gcc/recog.c:2053 0x2d3623 cleanup_subreg_operands(rtx_def*) ../../gcc/gcc/final.c:3008 0x4b85ff reload(rtx_def*, int) ../../gcc/gcc/reload1.c:1240 0x3d2df3 do_reload ../../gcc/gcc/ira.c:4635 0x3d2df3 rest_of_handle_reload ../../gcc/gcc/ira.c:4736 Introduced between 195690 and 195703.
Testing fix.
Author: danglin Date: Mon Feb 18 15:21:32 2013 New Revision: 196122 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196122 Log: PR target/56214 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode and HImode, require all displacements to be an integer multiple of the mode size. * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses, only allow QImode and HImode when reload is in progress and strict is true. Likewise for symbolic addresses. Use base14_operand to check displacements in REG+BASE addresses. Modified: trunk/gcc/ChangeLog trunk/gcc/config/pa/pa.c trunk/gcc/config/pa/predicates.md
Fixed.