------- 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

Reply via email to