[Bug middle-end/30215] New: FAIL: gcc.dg/pr23818.c (internal compiler error)

danglin at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Thu Dec 14 22:51:00 GMT 2006


Executing on host: /home/dave/gcc-4.3/objdir/gcc/xgcc
-B/home/dave/gcc-4.3/objdi
r/gcc/ /home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c   -O2
-fno-tree-dom
inator-opts -fno-show-column  -lm   -o ./pr23818.exe    (timeout = 300)
/home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c: In function 'foo':
/home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c:20: internal compiler
erro
r: in output_address, at final.c:3182
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
compiler exited with status 1
output is:
/home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c: In function 'foo':
/home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c:20: internal compiler
erro
r: in output_address, at final.c:3182
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

FAIL: gcc.dg/pr23818.c (internal compiler error)
FAIL: gcc.dg/pr23818.c (test for excess errors)

Starting program: /home/dave/gcc-4.3/objdir/gcc/cc1 `cat xx.sh`
GNU C version 4.3.0 20061213 (experimental) (hppa-linux)
        compiled by GNU C version 4.3.0 20061213 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
options passed:  -iprefix
 /home/dave/gcc-4.3/objdir/gcc/../lib/gcc/hppa-linux/4.3.0/ -isystem
 /home/dave/gcc-4.3/objdir/gcc/include
 /home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c -auxbase-strip
 ./pr23818.s -O2 -fno-tree-dominator-opts -fno-show-column
options enabled:  -falign-loops -fargument-alias -fbranch-count-reg
 -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
 -fcse-follow-jumps -fdefer-pop -fdelayed-branch
 -fdelete-null-pointer-checks -fearly-inlining
 -feliminate-unused-debug-types -femit-class-debug-always
 -fexpensive-optimizations -fforward-propagate -ffunction-cse -fgcse
 -fgcse-lm -fguess-branch-probability -fident -fif-conversion
 -fif-conversion2 -finline-functions-called-once -fipa-pure-const
 -fipa-reference -fipa-type-escape -fivopts -fkeep-static-consts
 -fleading-underscore -fmath-errno -fmerge-constants -fmove-loop-invariants
 -fomit-frame-pointer -foptimize-register-move -foptimize-sibling-calls
 -fpeephole -fpeephole2 -freg-struct-return -fregmove -freorder-blocks
 -freorder-functions -frerun-cse-after-loop -fsched-interblock -fsched-spec
 -fsched-stalled-insns-dep -fschedule-insns -fschedule-insns2
 -fsplit-ivs-in-unroller -fstrict-aliasing -fthread-jumps
 -ftoplevel-reorder -ftrapping-math -ftree-ccp -ftree-ch -ftree-copy-prop
 -ftree-copyrename -ftree-dce -ftree-dse -ftree-fre -ftree-loop-im
 -ftree-loop-ivcanon -ftree-loop-optimize -ftree-pre -ftree-salias
 -ftree-sink -ftree-sra -ftree-store-ccp -ftree-store-copy-prop -ftree-ter
 -ftree-vect-loop-version -ftree-vrp -funit-at-a-time -fvar-tracking
 -fzero-initialized-in-bss -mbig-switch -mgas -mglibc -mno-space-regs
Compiler executable checksum: f865cc56161569c8f9e4f97e8e9517f1
 foo main
Analyzing compilation unit
Performing interprocedural optimizations
Assembling functions:
 foo
/home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c: In function 'foo':
/home/dave/gcc-4.3/gcc/gcc/testsuite/gcc.dg/pr23818.c:20: internal compiler
error: in output_address, at final.c:3182

Breakpoint 1, output_address (x=0x400aadd0) at ../../gcc/gcc/final.c:3182
3182      PRINT_OPERAND_ADDRESS (asm_out_file, x);
(gdb) p debug_rtx (x)
(plus:SI (const_int 0 [0x0])
    (reg/v/f:SI 26 %r26 [orig:144 p ] [144]))

(gdb) p debug_rtx (insn)
(insn 75 78 87 (set (reg:SI 28 %r28 [151])
        (mem:SI (plus:SI (const_int 0 [0x0])
                (reg/v/f:SI 26 %r26 [orig:144 p ] [144])) [5 S4 A32])) 37
{*pa.md:2482} (nil)
    (expr_list:REG_EQUIV (mem:SI (plus:SI (const_int 0 [0x0])
                (reg/v/f:SI 26 %r26 [orig:144 p ] [144])) [5 S4 A32])
        (nil)))

Seems to have been created by expand:

;; MEM[base: q, index: 0B] = MEM[base: p, index: 0B] + 10
(insn 75 73 76 (set (reg:SI 151)
        (mem:SI (plus:SI (const_int 0 [0x0])
                (reg/v/f:SI 144 [ p ])) [5 S4 A32])) -1 (nil)
    (nil))

The PLUS isn't in canonical form.

#define PRINT_OPERAND_ADDRESS(FILE, ADDR)  \
{ rtx addr = ADDR;                                                      \
  switch (GET_CODE (addr))                                              \
    {                                                                   \
    case REG:                                                           \
      fprintf (FILE, "0(%s)", reg_names [REGNO (addr)]);                \
      break;                                                            \
    case PLUS:                                                          \
      gcc_assert (GET_CODE (XEXP (addr, 1)) == CONST_INT);              \
      fprintf (FILE, "%d(%s)", (int)INTVAL (XEXP (addr, 1)),            \
               reg_names [REGNO (XEXP (addr, 0))]);                     \
      break;                                                            \


-- 
           Summary: FAIL: gcc.dg/pr23818.c (internal compiler error)
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux-gnu
  GCC host triplet: hppa-unknown-linux-gnu
GCC target triplet: hppa-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30215



More information about the Gcc-bugs mailing list