On Linux/Intel64, revision 147294 gave:
gcc -c -o function.o -DSPEC_CPU -DNDEBUG -I. -O3 -ffast-math -funroll-loops
-DSPEC_CPU_LP64 function.c
function.c:8078: error: edge points to wrong declaration:
<function_decl 0x2b1ba1268f00 do_clobber_return_reg
type <function_type 0x2b1ba0f45e40
type <void_type 0x2b1ba0b0b3c0 void VOID
align 8 symtab 0 alias set -1 canonical type 0x2b1ba0b0b3c0
pointer_to_this <pointer_type 0x2b1ba0b0b480>>
QI
size <integer_cst 0x2b1ba0aec7e0 constant 8>
unit size <integer_cst 0x2b1ba0aec810 constant 1>
align 8 symtab 0 alias set -1 canonical type 0x2b1ba0f45f00
arg-types <tree_list 0x2b1ba113af90 value <pointer_type 0x2b1ba0c5e6c0
rtx>
chain <tree_list 0x2b1ba113af60 value <pointer_type 0x2b1ba0b0b480>
chain <tree_list 0x2b1ba0b099f0 value <void_type 0x2b1ba0b0b3c0
void>>>>
pointer_to_this <pointer_type 0x2b1ba0f420c0>>
addressable used nothrow static decl_5 QI file function.c line 6764 col 1
align 8 initial <block 0x2b1ba1543060>
arguments <parm_decl 0x2b1ba102ba20 reg
type <pointer_type 0x2b1ba0c5e6c0 rtx type <record_type 0x2b1ba0c5e3c0
rtx_def>
sizes-gimplified public unsigned DI
size <integer_cst 0x2b1ba0aecb70 constant 64>
unit size <integer_cst 0x2b1ba0aecba0 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x2b1ba0c5e540
pointer_to_this <pointer_type 0x2b1ba1021000>>
used unsigned DI file function.c line 6765 col 10 size <integer_cst
0x2b1ba0aecb70 64> unit size <integer_cst 0x2b1ba0aecba0 8>
align 64 context <function_decl 0x2b1ba1268f00 do_clobber_return_reg>
arg-type <pointer_type 0x2b1ba0c5e6c0 rtx>
chain <parm_decl 0x2b1ba102bab0 arg type <pointer_type 0x2b1ba0b0b480>
used unsigned DI file function.c line 6766 col 12 size <integer_cst
0x2b1ba0aecb70 64> unit size <integer_cst 0x2b1ba0aecba0 8>
align 64 context <function_decl 0x2b1ba1268f00
do_clobber_return_reg> attributes <tree_list 0x2b1ba122c630> arg-type
<pointer_type 0x2b1ba0b0b480>>>
result <result_decl 0x2b1ba1542500 D.19286 type <void_type 0x2b1ba0b0b3c0
void>
ignored VOID file function.c line 6765 col 6
align 8 context <function_decl 0x2b1ba1268f00 do_clobber_return_reg>>
saved-insns 0x2b1ba102bb40 chain <function_decl 0x2b1ba126b000
do_use_return_reg>>
Instead of: <function_decl 0x2b1ba126b000 do_use_return_reg
type <function_type 0x2b1ba0f45e40
type <void_type 0x2b1ba0b0b3c0 void VOID
align 8 symtab 0 alias set -1 canonical type 0x2b1ba0b0b3c0
pointer_to_this <pointer_type 0x2b1ba0b0b480>>
QI
size <integer_cst 0x2b1ba0aec7e0 constant 8>
unit size <integer_cst 0x2b1ba0aec810 constant 1>
align 8 symtab 0 alias set -1 canonical type 0x2b1ba0f45f00
arg-types <tree_list 0x2b1ba113af90 value <pointer_type 0x2b1ba0c5e6c0
rtx>
chain <tree_list 0x2b1ba113af60 value <pointer_type 0x2b1ba0b0b480>
chain <tree_list 0x2b1ba0b099f0 value <void_type 0x2b1ba0b0b3c0
void>>>>
pointer_to_this <pointer_type 0x2b1ba0f420c0>>
addressable used nothrow static decl_5 QI file function.c line 6789 col 1
align 8 initial <block 0x2b1ba1543480>
arguments <parm_decl 0x2b1ba102bd80 reg
type <pointer_type 0x2b1ba0c5e6c0 rtx type <record_type 0x2b1ba0c5e3c0
rtx_def>
sizes-gimplified public unsigned DI
size <integer_cst 0x2b1ba0aecb70 constant 64>
unit size <integer_cst 0x2b1ba0aecba0 constant 8>
align 64 symtab 0 alias set -1 canonical type 0x2b1ba0c5e540
pointer_to_this <pointer_type 0x2b1ba1021000>>
used unsigned DI file function.c line 6790 col 10 size <integer_cst
0x2b1ba0aecb70 64> unit size <integer_cst 0x2b1ba0aecba0 8>
align 64 context <function_decl 0x2b1ba126b000 do_use_return_reg>
arg-type <pointer_type 0x2b1ba0c5e6c0 rtx>
chain <parm_decl 0x2b1ba102be10 arg type <pointer_type 0x2b1ba0b0b480>
used unsigned DI file function.c line 6791 col 12 size <integer_cst
0x2b1ba0aecb70 64> unit size <integer_cst 0x2b1ba0aecba0 8>
align 64 context <function_decl 0x2b1ba126b000 do_use_return_reg>
attributes <tree_list 0x2b1ba1228570> arg-type <pointer_type 0x2b1ba0b0b480>>>
result <result_decl 0x2b1ba1542c80 D.19311 type <void_type 0x2b1ba0b0b3c0
void>
ignored VOID file function.c line 6790 col 6
align 8 context <function_decl 0x2b1ba126b000 do_use_return_reg>>
saved-insns 0x2b1ba102bea0 chain <var_decl 0x2b1ba125a1e0
outer_function_chain>>
specmake[3]: *** [function.o] Error 1
--
Summary: [4.5 Regression] 403.gcc in SPEC CPU 2006 failed at -O3
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40083