[Bug middle-end/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed

trippels at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 17 09:45:00 GMT 2014


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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-01-17
                 CC|                            |trippels at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
A bit more reduced:

markus@x4 tmp % cat test.ii
template <class> class A {
protected:
  void m_fn2();
  ~A() { m_fn2(); }
  virtual void m_fn1();
};

class D : A<int> {};
template <class Key> void A<Key>::m_fn2() {
  m_fn1();
  m_fn1();
  m_fn1();
}

#pragma interface
class B {
  D m_cellsAlreadyProcessed;
  D m_cellsNotToProcess;

public:
  virtual ~B() {}
  void m_fn1();
};

class C {
  unsigned long m_fn1();
  B m_fn2();
  unsigned long m_fn3();
};
unsigned long C::m_fn1() {
CellHierarchy:
  m_fn2().m_fn1();
}

unsigned long C::m_fn3() {
CellHierarchy:
  m_fn2().m_fn1();
}


markus@x4 tmp % /var/tmp/gcc_test/usr/local/bin/g++ -O3 -c test.ii
test.ii:38:1: error: edge points to wrong declaration:
 }
 ^
 <function_decl 0x7fbc9b7e4c00 __base_dtor .constprop
    type <method_type 0x7fbc9b7ca690
        type <void_type 0x7fbc9b671000 void type_6 VOID
            align 8 symtab 0 alias set -1 canonical type 0x7fbc9b671000
            pointer_to_this <pointer_type 0x7fbc9b6710a8>>
        QI
        size <integer_cst 0x7fbc9b660280 constant 8>
        unit size <integer_cst 0x7fbc9b6602a0 constant 1>
        align 8 symtab 0 alias set -1 canonical type 0x7fbc9b7ca690 method
basetype <record_type 0x7fbc9b7c8bd0 B>
        arg-types <tree_list 0x7fbc9b7f30a0 value <pointer_type 0x7fbc9b7c8e70>
            chain <tree_list 0x7fbc9b65cb40 value <void_type 0x7fbc9b671000
void>>>>
    static autoinline decl_5 QI file test.ii line 21 col 11 align 16 context
<record_type 0x7fbc9b7c8bd0 B> abstract_origin <function_decl 0x7fbc9b7b3200 B>
    full-name "B::~B()"
    pending-inline-info 0x7fbc9b7cc780>
 Instead of: <function_decl 0x7fbc9b7cb200 __comp_dtor 
    type <method_type 0x7fbc9b7c8dc8
        type <void_type 0x7fbc9b671000 void type_6 VOID
            align 8 symtab 0 alias set -1 canonical type 0x7fbc9b671000
            pointer_to_this <pointer_type 0x7fbc9b6710a8>>
        QI
        size <integer_cst 0x7fbc9b660280 constant 8>
        unit size <integer_cst 0x7fbc9b6602a0 constant 1>
        align 8 symtab 0 alias set -1 canonical type 0x7fbc9b7c8dc8 method
basetype <record_type 0x7fbc9b7c8bd0 B>
        arg-types <tree_list 0x7fbc9b7c0898 value <pointer_type 0x7fbc9b7c8e70>
            chain <tree_list 0x7fbc9b65cb40 value <void_type 0x7fbc9b671000
void>>>
        pointer_to_this <pointer_type 0x7fbc9b7ca498>>
    addressable used public static external weak autoinline decl_5 QI file
test.ii line 21 col 11 align 16 context <record_type 0x7fbc9b7c8bd0 B> initial
<error_mark 0x7fbc9b655f48> abstract_origin <function_decl 0x7fbc9b7b3200 B>
    full-name "B::~B()"
    pending-inline-info 0x7fbc9b7cc900 chain <function_decl 0x7fbc9b7cb100
__deleting_dtor >>
_ZN1C5m_fn3Ev/8 (long unsigned int C::m_fn3()) @0x7fbc9b7d2000
  Type: function definition analyzed
  Visibility: forced_by_abi externally_visible public
  References: __gxx_personality_v0/22 (addr)
  Referring: 
  Availability: available
  First run: 0
  Function flags: body
  Called by: 
  Calls: _ZN1BD2Ev.constprop.0/35 _ZN1BD2Ev.constprop.0/39 (inlined) (1.00 per
call) (can throw external) _ZN1B5m_fn1Ev/21 (1.00 per call) _ZN1C5m_fn2Ev/20
(1.00 per call) (can throw external) 
test.ii:38:1: internal compiler error: verify_cgraph_node failed



More information about the Gcc-bugs mailing list