http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55142
Bug #: 55142 Summary: [4.8 Regression] internal compiler error: in plus_constant, at explow.c:88 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: rdsandif...@googlemail.com, ubiz...@gmail.com [hjl@gnu-tools-1 delta-2006.08.03]$ cat x.c typedef int int32_t; typedef unsigned int uint32_t; typedef int32_t Elf32_Sword; typedef struct { Elf32_Sword d_tag; } Elf32_Dyn; struct link_map { Elf32_Dyn *l_ld; Elf32_Dyn *l_info[34]; }; extern struct link_map _dl_rtld_map __attribute__ ((visibility ("hidden"))); static void elf_get_dynamic_info (struct link_map *l) { Elf32_Dyn *dyn = l->l_ld; Elf32_Dyn **info; info = l->l_info; while (dyn->d_tag != 0) { if (dyn->d_tag < 11) info[0x6ffffeff - dyn->d_tag + 12] = dyn; ++dyn; } } void dl_start (void) { elf_get_dynamic_info (&_dl_rtld_map); } [hjl@gnu-tools-1 delta-2006.08.03]$ /export/build/gnu/gcc-x32/release/usr/gcc-4.8.0-x32/bin/gcc -mx32 -mtune=generic -march=x86-64 x.c -S -O2 -fPIC -maddress-mode=long x.c: In function ‘dl_start’: x.c:22:37: internal compiler error: in plus_constant, at explow.c:88 info[0x6ffffeff - dyn->d_tag + 12] = dyn; ^ 0x6a656a plus_constant(machine_mode, rtx_def*, long) /export/gnu/import/git/gcc/gcc/explow.c:88 0xb107e7 ix86_expand_move(machine_mode, rtx_def**) /export/gnu/import/git/gcc/gcc/config/i386/i386.c:15973 0xb85c3e gen_movsi(rtx_def*, rtx_def*) /export/gnu/import/git/gcc/gcc/config/i386/i386.md:1813 0x6c11f4 emit_move_insn_1(rtx_def*, rtx_def*) /export/gnu/import/git/gcc/gcc/expr.c:3418 0x6c14f0 emit_move_insn(rtx_def*, rtx_def*) /export/gnu/import/git/gcc/gcc/expr.c:3512 0x6a6d2e copy_to_mode_reg(machine_mode, rtx_def*) /export/gnu/import/git/gcc/gcc/explow.c:645 0x825bc2 maybe_legitimize_operand /export/gnu/import/git/gcc/gcc/optabs.c:8080 0x825bc2 maybe_legitimize_operands(insn_code, unsigned int, unsigned int, expand_operand*) /export/gnu/import/git/gcc/gcc/optabs.c:8142 0x825cf8 maybe_gen_insn(insn_code, unsigned int, expand_operand*) /export/gnu/import/git/gcc/gcc/optabs.c:8160 0x829364 expand_binop_directly /export/gnu/import/git/gcc/gcc/optabs.c:1461 0x82773d expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*, int, optab_methods) /export/gnu/import/git/gcc/gcc/optabs.c:1530 0x6c5d78 force_operand(rtx_def*, rtx_def*) /export/gnu/import/git/gcc/gcc/expr.c:7057 0x6a6d52 copy_to_mode_reg(machine_mode, rtx_def*) /export/gnu/import/git/gcc/gcc/explow.c:641 0x825bc2 maybe_legitimize_operand /export/gnu/import/git/gcc/gcc/optabs.c:8080 0x825bc2 maybe_legitimize_operands(insn_code, unsigned int, unsigned int, expand_operand*) /export/gnu/import/git/gcc/gcc/optabs.c:8142 0x825cf8 maybe_gen_insn(insn_code, unsigned int, expand_operand*) /export/gnu/import/git/gcc/gcc/optabs.c:8160 0x825f69 maybe_emit_unop_insn(insn_code, rtx_def*, rtx_def*, rtx_code) /export/gnu/import/git/gcc/gcc/optabs.c:3774 0x825ff8 emit_unop_insn(insn_code, rtx_def*, rtx_def*, rtx_code) /export/gnu/import/git/gcc/gcc/optabs.c:3796 0x6c27b0 convert_modes(machine_mode, machine_mode, rtx_def*, int) /export/gnu/import/git/gcc/gcc/expr.c:784 0x6a7161 memory_address_addr_space(machine_mode, rtx_def*, unsigned char) /export/gnu/import/git/gcc/gcc/explow.c:429 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. [hjl@gnu-tools-1 delta-2006.08.03]$