[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 --- Comment #20 from Martin Jambor jamborm at gcc dot gnu.org --- Author: jamborm Date: Tue Mar 25 10:57:07 2014 New Revision: 208809 URL: http://gcc.gnu.org/viewcvs?rev=208809root=gccview=rev Log: 2014-03-25 Martin Jambor mjam...@suse.cz PR ipa/59176 * lto-cgraph.c (lto_output_node): Stream body_removed flag. (lto_output_varpool_node): Likewise. (input_overwrite_node): Likewise. (input_varpool_node): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/lto-cgraph.c
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 --- Comment #15 from David Binderman dcb314 at hotmail dot com --- Created attachment 32434 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32434action=edit gzipped C++ source code
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 --- Comment #16 from David Binderman dcb314 at hotmail dot com --- I am not sure this is fixed. Please see attached source code which still fails.
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 --- Comment #17 from Martin Jambor jamborm at gcc dot gnu.org --- (In reply to David Binderman from comment #16) I am not sure this is fixed. Please see attached source code which still fails. Although the ICE message is the same, this is most certainly a different bug as it happens at a different time during the compilation process. I will look it at it some more tomorrow.
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 --- Comment #18 from Markus Trippelsdorf trippels at gcc dot gnu.org --- markus@x4 tmp % cat test.ii class ASN1Object { public: virtual ~ASN1Object (); }; class A { virtual unsigned m_fn1 () const; }; class B { public: ASN1Object Element; virtual unsigned m_fn1 (bool) const; }; template class BASE class C : public BASE { }; class D : ASN1Object, public B { }; class G : public D { unsigned m_fn1 (bool) const {} }; class F : A { public: F (A); unsigned m_fn1 () const { int a; a = m_fn2 ().m_fn1 (0); return a; } const B m_fn2 () const { return m_groupParameters; } CG m_groupParameters; }; template class D void BenchMarkKeyAgreement (int *, int *, int) { A f; D d (f); } void BenchmarkAll2 () { BenchMarkKeyAgreementF(0, 0, 0); } markus@x4 tmp % g++ -c -O3 test.ii test.ii:46:60: error: edge points to wrong declaration: void BenchmarkAll2 () { BenchMarkKeyAgreementF(0, 0, 0); } ^ function_decl 0x7fd4c010fa00 m_fn1.constprop type function_type 0x7fd4c00d3348 type integer_type 0x7fd4bff4a738 unsigned int public unsigned SI size integer_cst 0x7fd4bff4c440 constant 32 unit size integer_cst 0x7fd4bff4c460 constant 4 align 32 symtab 0 alias set -1 canonical type 0x7fd4bff4a738 precision 32 min integer_cst 0x7fd4bff4c480 0 max integer_cst 0x7fd4bff4c420 4294967295 pointer_to_this pointer_type 0x7fd4c0060150 QI size integer_cst 0x7fd4bff4c280 constant 8 unit size integer_cst 0x7fd4bff4c2a0 constant 1 align 8 symtab 0 alias set -1 canonical type 0x7fd4c00d3348 arg-types tree_list 0x7fd4bff48b40 value void_type 0x7fd4bff5d000 void readonly addressable used nothrow private static autoinline decl_5 QI defer-output file test.ii line 25 col 12 align 16 context record_type 0x7fd4c00b7e70 G Instead of: function_decl 0x7fd4c00b8c00 _ZThn8_NK1G5m_fn1Eb type method_type 0x7fd4c00ba150 type integer_type 0x7fd4bff4a738 unsigned int public unsigned SI size integer_cst 0x7fd4bff4c440 constant 32 unit size integer_cst 0x7fd4bff4c460 constant 4 align 32 symtab 0 alias set -1 canonical type 0x7fd4bff4a738 precision 32 min integer_cst 0x7fd4bff4c480 0 max integer_cst 0x7fd4bff4c420 4294967295 pointer_to_this pointer_type 0x7fd4c0060150 QI size integer_cst 0x7fd4bff4c280 constant 8 unit size integer_cst 0x7fd4bff4c2a0 constant 1 align 8 symtab 0 alias set -1 canonical type 0x7fd4c00ba150 method basetype record_type 0x7fd4c00b7e70 G arg-types tree_list 0x7fd4c00abca8 value pointer_type 0x7fd4c00ba1f8 chain tree_list 0x7fd4c00ab3c0 value boolean_type 0x7fd4bff4abd0 bool chain tree_list 0x7fd4bff48b40 value void_type 0x7fd4bff5d000 void pointer_to_this pointer_type 0x7fd4c00baa80 readonly addressable asm_written used public weak virtual decl_5 QI file test.ii line 25 col 12 align 8 context record_type 0x7fd4c00b7e70 G arguments parm_decl 0x7fd4c00bb380 this type pointer_type 0x7fd4c00ba2a0 type record_type 0x7fd4c00ba0a8 G readonly unsigned DI size integer_cst 0x7fd4bff4c0c0 constant 64 unit size integer_cst 0x7fd4bff4c0e0 constant 8 align 64 symtab 0 alias set -1 canonical type 0x7fd4c00ba2a0 readonly unsigned DI file test.ii line 25 col 25 size integer_cst 0x7fd4bff4c0c0 64 unit size integer_cst 0x7fd4bff4c0e0 8 align 64 context function_decl 0x7fd4c00b8c00 _ZThn8_NK1G5m_fn1Eb arg-type pointer_type 0x7fd4c00ba2a0 chain parm_decl 0x7fd4c00bb400 D.2326 type boolean_type 0x7fd4bff4abd0 bool unsigned QI file test.ii line 25 col 19 size integer_cst 0x7fd4bff4c280 8 unit size integer_cst 0x7fd4bff4c2a0 1 align 8 context function_decl 0x7fd4c00b8c00 _ZThn8_NK1G5m_fn1Eb arg-type integer_type 0x7fd4bff4a690 int full-name virtual unsigned int G::_ZThn8_NK1G5m_fn1Eb(bool) const _ZNK1F5m_fn1Ev/3 (virtual unsigned int F::m_fn1() const) @0x7fd4c00c4290 Type: function definition analyzed Visibility: externally_visible public weak comdat comdat_group:_ZNK1F5m_fn1Ev one_only virtual Address is taken. References: Referring: _ZTV1F/31 (addr) Availability: available First run: 0 Function flags: body Called by: Calls: _ZNK1G5m_fn1Eb.constprop.1/73 (1.00 per call) (can throw external) test.ii:46:60: internal compiler error: verify_cgraph_node failed
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 --- Comment #19 from Tobias Burnus burnus at gcc dot gnu.org --- (In reply to Martin Jambor from comment #17) Although the ICE message is the same, this is most certainly a different bug as it happens at a different time during the compilation process. I will look it at it some more tomorrow. I have filled PR60640 for this - with a reduced test case.
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 --- Comment #13 from Martin Jambor jamborm at gcc dot gnu.org --- Author: jamborm Date: Fri Mar 21 12:59:35 2014 New Revision: 208748 URL: http://gcc.gnu.org/viewcvs?rev=208748root=gccview=rev Log: 2014-03-21 Martin Jambor mjam...@suse.cz PR ipa/59176 * cgraph.h (symtab_node): New flag body_removed. * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag when removing bodies. * symtab.c (dump_symtab_base): Dump body_removed flag. * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which had their bodies removed. testsuite/ * g++.dg/torture/pr59176.C: New test. Added: trunk/gcc/testsuite/g++.dg/ipa/pr59176.C Modified: trunk/gcc/ChangeLog trunk/gcc/cgraph.c trunk/gcc/cgraph.h trunk/gcc/ipa.c trunk/gcc/symtab.c trunk/gcc/testsuite/ChangeLog
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #14 from Martin Jambor jamborm at gcc dot gnu.org --- Fixed.
[Bug ipa/59176] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59176 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc-p ||atches/2014-03/msg01075.htm ||l Component|middle-end |ipa --- Comment #12 from Martin Jambor jamborm at gcc dot gnu.org --- (In reply to Jan Hubicka from comment #10) I will check how to silence the verifier. I've just proposed a way of doing that on the mailing list: http://gcc.gnu.org/ml/gcc-patches/2014-03/msg01075.html