------- Comment #4 from ebotcazou at gcc dot gnu dot org 2007-11-12 21:06 ------- Nothing to do with optimization, it's a Fortran front-end problem:
(gdb) p debug_tree(from) <call_expr 0x2a95a3a060 type <real_type 0x2a959ec680 SF size <integer_cst 0x2a959cd8d0 constant invariant 32> unit size <integer_cst 0x2a959cd540 constant invariant 4> align 32 symtab 0 alias set -1 canonical type 0x2a959ec680 precision 32 pointer_to_this <pointer_type 0x2a959ec8f0>> fn <addr_expr 0x2a9556d300 type <pointer_type 0x2a95a36a90 type <function_type 0x2a95a01a90> unsigned SI size <integer_cst 0x2a959cd8d0 32> unit size <integer_cst 0x2a959cd540 4> align 32 symtab 0 alias set -1 canonical type 0x2a95a36a90> readonly constant invariant arg 0 <function_decl 0x2a95a11700 __builtin_copysign type <function_type 0x2a95a01a90> readonly public external built-in SI file pr34040.f95 line 0 align 16 built-in BUILT_IN_NORMAL:BUILT_IN_COPYSIGN (mem:SI (symbol_ref:SI ("copysign") [flags 0x41] <function_decl 0x2a95a11700 __builtin_copysign>) [0 S4 A32]) chain <function_decl 0x2a95a11600 __builtin_copysignl>>> arg 0 <indirect_ref 0x2a9556d200 type <real_type 0x2a959ec750 real8 DF size <integer_cst 0x2a959cda80 constant invariant 64> unit size <integer_cst 0x2a959cdab0 constant invariant 8> align 32 symtab 0 alias set -1 canonical type 0x2a959ec750 precision 64 pointer_to_this <pointer_type 0x2a959ec9c0> reference_to_this <reference_type 0x2a95a368f0>> arg 0 <parm_decl 0x2a959d2460 p1 type <reference_type 0x2a95a368f0> readonly used unsigned SI file pr34040.f95 line 1 size <integer_cst0x2a959cd8d0 32> unit size <integer_cst 0x2a959cd540 4> align 32 context <function_decl 0x2a95a37200 _gfortran_specific__sign_r8> initial <reference_type 0x2a95a368f0> (reg/v/f:SI 161 [ p1 ]) arg-type <reference_type 0x2a95a368f0> incoming-rtl (reg:SI 4 r4 [ p1 ]) chain <parm_decl 0x2a959d2500 p2>>> arg 1 <indirect_ref 0x2a9556d280 type <real_type 0x2a959ec750 real8> arg 0 <parm_decl 0x2a959d2500 p2 type <reference_type 0x2a95a368f0> readonly used unsigned SI file pr34040.f95 line 1 size <integer_cst0x2a959cd8d0 32> unit size <integer_cst 0x2a959cd540 4> align 32 context <function_decl 0x2a95a37200 _gfortran_specific__sign_r8> initial <reference_type 0x2a95a368f0> (reg/v/f:SI 162 [ p2 ]) arg-type <reference_type 0x2a95a368f0> incoming-rtl (reg:SI 5 r5 [ p2 ])>> pr34040.f95:4> __builtin_copysign has got SFmode(*)(SFmode, SFmode) prototype and is invoked on DFmode arguments. -- ebotcazou at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|ebotcazou at gcc dot gnu dot|unassigned at gcc dot gnu |org |dot org Status|ASSIGNED |NEW Component|rtl-optimization |fortran http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34040