[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #10 from Martin Jambor jamborm at gcc dot gnu.org --- Created attachment 32523 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32523action=edit Proposed patch for the 4.8 branch Independent of the trunk fix, I'm going to propose this simple patch which disables propagation through thunks for the 4.8 branch. It passes bootstrap and testsuite on x86_64-linux.
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #11 from Martin Jambor jamborm at gcc dot gnu.org --- Created attachment 32524 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32524action=edit Proposed patch for the 4.7 branch Independent of the trunk fix, I'm going to propose this simple patch which disables propagation through thunks for the 4.7 branch. It passes bootstrap and testsuite on x86_64-linux.
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #8 from Martin Jambor jamborm at gcc dot gnu.org --- Created attachment 32513 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32513action=edit Miscompiled run time testcase (In reply to Jakub Jelinek from comment #7) I still see the old testcase only there ;). Yeah, I forgot to refresh the patch, but I do have it in my copy. I'm also adding this one.
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #9 from Martin Jambor jamborm at gcc dot gnu.org --- This one has them all, in addition to fixing a real problem: http://gcc.gnu.org/ml/gcc-patches/2014-04/msg00016.html
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P1 CC||jakub at gcc dot gnu.org
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org --- Reduced testcase: struct A {}; struct E { ~E (); }; struct B { virtual unsigned foo () const; }; struct C { virtual void foo (); }; struct D : public A { D (A *); }; struct I : public D { A i; I (int) : D (0) {} }; struct F : E { virtual unsigned foo (bool) const; }; template class T struct G : public T {}; struct J : C, public F {}; struct K : public J { unsigned foo (bool) const { return 0; } }; struct H : B { H (A); unsigned foo () const { return bar ().foo (0); } const F bar () const { return h; } GK h; }; template class T void baz () { I f (0); T d (f); } void test () { bazH (); } Regressed with r205019.
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org --- That is still too big, here is a smaller one: struct B { virtual unsigned f () const; }; struct C { virtual void f (); }; struct F { virtual unsigned f (bool) const; ~F (); }; struct J : C, F {}; struct G : J { unsigned f (bool) const { return 0; } }; struct H : B { H (int); unsigned f () const { return ((const F ) h).f (0); } G h; }; H h (0);
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org --- (In reply to Jakub Jelinek from comment #4) That is still too big, here is a smaller one: struct B { virtual unsigned f () const; }; struct C { virtual void f (); }; struct F { virtual unsigned f (bool) const; ~F (); }; struct J : C, F {}; struct G : J { unsigned f (bool) const { return 0; } }; struct H : B { H (int); unsigned f () const { return ((const F ) h).f (0); } G h; }; H h (0); Though, on this reduced testcase the ICE started with r176424, i.e. making it a 4.7/4.8/4.9 Regression on that testcase.
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #6 from Martin Jambor jamborm at gcc dot gnu.org --- I added the newest testcase to the patch a proposed it on the mailing list: http://gcc.gnu.org/ml/gcc-patches/2014-03/msg01640.html
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 --- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org --- (In reply to Martin Jambor from comment #6) I added the newest testcase to the patch a proposed it on the mailing list: http://gcc.gnu.org/ml/gcc-patches/2014-03/msg01640.html I still see the old testcase only there ;).
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.9.0
[Bug middle-end/60640] [4.9 Regression] ICE edge points to wrong declaration / verify_cgraph_node failed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60640 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-03-25 Assignee|unassigned at gcc dot gnu.org |jamborm at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Martin Jambor jamborm at gcc dot gnu.org --- Confirmed, mine.