~/trunk-install/bin/g++ -O3 -fwhopr a.ii b.ii  -r  -nostdlib

leads to
 <function_decl 0x7ffff71d6800
_Z20POVMS_AssertFunctioniPKcS0_i.part.0.2033.constprop.2
    type <function_type 0x7ffff71d83f0
        type <integer_type 0x7ffff7ed8498 public SI
            size <integer_cst 0x7ffff7ec7708 constant 32>
            unit size <integer_cst 0x7ffff7ec7410 constant 4>
            align 32 symtab 0 alias set -1 canonical type 0x7ffff7ed8498
precision 32 min <integer_cst 0x7ffff7ec7690 -2147483648> max <integer_cst
0x7ffff7ec76b8 2147483647>
            pointer_to_this <pointer_type 0x7ffff7ee53f0>>
        QI
        size <integer_cst 0x7ffff7ec74d8 constant 8>
        unit size <integer_cst 0x7ffff7ec7500 constant 1>
        align 8 symtab 0 alias set -1 canonical type 0x7ffff71d83f0
        arg-types <tree_list 0x7ffff71d9118 value <pointer_type 0x7ffff71d82a0>
            chain <tree_list 0x7ffff71d9140 value <integer_type 0x7ffff7ed8498>
                chain <tree_list 0x7ffff7ec7fa0 value <void_type
0x7ffff7ed8d20>>>>>
    addressable used nothrow static external QI file b.ii line 39 col 11 align
8 abstract_origin <function_decl 0x7ffff71d6700 POVMS_AssertFunction>
    arguments <parm_decl 0x7ffff7eceaa0 str
        type <pointer_type 0x7ffff71d82a0 type <integer_type 0x7ffff71d8000
char>
            unsigned DI
            size <integer_cst 0x7ffff7ec77d0 constant 64>
            unit size <integer_cst 0x7ffff7ec77f8 constant 8>
            align 64 symtab 0 alias set -1 canonical type 0x7ffff71d82a0>
        used unsigned DI file b.ii line 39 col 54 size <integer_cst
0x7ffff7ec77d0 64> unit size <integer_cst 0x7ffff7ec77f8 8>
        align 64 context <function_decl 0x7ffff71d6600
_Z20POVMS_AssertFunctioniPKcS0_i.part.0> abstract_origin <parm_decl
0x7ffff7ece908 str> arg-type <pointer_type 0x7ffff71d82a0>
        chain <parm_decl 0x7ffff7eceb28 filename type <pointer_type
0x7ffff71d82a0>
            used unsigned DI file b.ii line 39 col 71 size <integer_cst
0x7ffff7ec77d0 64> unit size <integer_cst 0x7ffff7ec77f8 8>
            align 64 context <function_decl 0x7ffff71d6600
_Z20POVMS_AssertFunctioniPKcS0_i.part.0> abstract_origin <parm_decl
0x7ffff7ece990 filename> arg-type <pointer_type 0x7ffff71d82a0> chain
<parm_decl 0x7ffff7ecebb0 line>>>
    result <result_decl 0x7ffff7ed0380 D.2026 type <integer_type
0x7ffff7ed8498>
        used ignored SI file b.ii line 39 col 89 size <integer_cst
0x7ffff7ec7708 32> unit size <integer_cst 0x7ffff7ec7410 4>
        align 32 context <function_decl 0x7ffff71d6600
_Z20POVMS_AssertFunctioniPKcS0_i.part.0> abstract_origin <result_decl
0x7ffff7ed0300 D.2022>>>
 Instead of: <function_decl 0x7ffff71d6600
_Z20POVMS_AssertFunctioniPKcS0_i.part.0
    type <function_type 0x7ffff71d81f8
        type <integer_type 0x7ffff7ed8498 public SI
            size <integer_cst 0x7ffff7ec7708 constant 32>
            unit size <integer_cst 0x7ffff7ec7410 constant 4>
            align 32 symtab 0 alias set -1 canonical type 0x7ffff7ed8498
precision 32 min <integer_cst 0x7ffff7ec7690 -2147483648> max <integer_cst
0x7ffff7ec76b8 2147483647>
            pointer_to_this <pointer_type 0x7ffff7ee53f0>>
        QI
        size <integer_cst 0x7ffff7ec74d8 constant 8>
        unit size <integer_cst 0x7ffff7ec7500 constant 1>
        align 8 symtab 0 alias set -1 canonical type 0x7ffff71d81f8
        arg-types <tree_list 0x7ffff71cfe38 value <pointer_type 0x7ffff71d82a0>
            chain <tree_list 0x7ffff71cfe60 value <pointer_type 0x7ffff71d82a0>
                chain <tree_list 0x7ffff71cfe88 value <integer_type
0x7ffff7ed8498>
                    chain <tree_list 0x7ffff7ec7fa0 value <void_type
0x7ffff7ed8d20>>>>>
        pointer_to_this <pointer_type 0x7ffff71dfa80>>
    addressable used static QI file b.ii line 39 col 11 align 8 initial <block
0x7ffff71f6478> abstract_origin <function_decl 0x7ffff71d6700
POVMS_AssertFunction>
    arguments <parm_decl 0x7ffff7eceaa0 str
        type <pointer_type 0x7ffff71d82a0 type <integer_type 0x7ffff71d8000
char>
            unsigned DI
            size <integer_cst 0x7ffff7ec77d0 constant 64>
            unit size <integer_cst 0x7ffff7ec77f8 constant 8>
            align 64 symtab 0 alias set -1 canonical type 0x7ffff71d82a0>
        used unsigned DI file b.ii line 39 col 54 size <integer_cst
0x7ffff7ec77d0 64> unit size <integer_cst 0x7ffff7ec77f8 8>
        align 64 context <function_decl 0x7ffff71d6600
_Z20POVMS_AssertFunctioniPKcS0_i.part.0> abstract_origin <parm_decl
0x7ffff7ece908 str> arg-type <pointer_type 0x7ffff71d82a0>
        chain <parm_decl 0x7ffff7eceb28 filename type <pointer_type
0x7ffff71d82a0>
            used unsigned DI file b.ii line 39 col 71 size <integer_cst
0x7ffff7ec77d0 64> unit size <integer_cst 0x7ffff7ec77f8 8>
            align 64 context <function_decl 0x7ffff71d6600
_Z20POVMS_AssertFunctioniPKcS0_i.part.0> abstract_origin <parm_decl
0x7ffff7ece990 filename> arg-type <pointer_type 0x7ffff71d82a0> chain
<parm_decl 0x7ffff7ecebb0 line>>>
    result <result_decl 0x7ffff7ed0380 D.2026 type <integer_type
0x7ffff7ed8498>
        used ignored SI file b.ii line 39 col 89 size <integer_cst
0x7ffff7ec7708 32> unit size <integer_cst 0x7ffff7ec7410 4>
        align 32 context <function_decl 0x7ffff71d6600
_Z20POVMS_AssertFunctioniPKcS0_i.part.0> abstract_origin <result_decl
0x7ffff7ed0300 D.2022>>
    struct-function 0x7ffff71dbb48>
_Z20POVMS_AssertFunctioniPKcS0_i.constprop.0/10(-1) @0x7ffff71e2d70 (asm:
_Z20POVMS_AssertFunctioniPKcS0_i.constprop.0.2043) (inline copy in
POVMSObject_Copy/7) (clone of _Z20POVMS_AssertFunctioniPKcS0_i.constprop.0/14)
availability:local analyzed 7 time, 15 benefit 7 size, 6 benefit reachable body
local finalized inlinable
  called by: _Z16POVMSObject_CopyP9POVMSDataS0_.part.2/8 (0.01 per call)
(inlined) (can throw external) 
  calls: _Z20POVMS_AssertFunctioniPKcS0_i.part.0.2033.constprop.2/1 (0.00 per
call) (nested in 2 loops) 
  References: 
  Refering this function:


-- 
           Summary: ICE at lto1: error: edge points to wrong declaration
                    while compiling povray
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hubicka at gcc dot gnu dot org


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

Reply via email to