[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 Jan Hubicka hubicka at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #16 from Jan Hubicka hubicka at gcc dot gnu.org --- Fixed.
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #15 from Jan Hubicka hubicka at gcc dot gnu.org --- Author: hubicka Date: Mon Jan 19 20:46:15 2015 New Revision: 219859 URL: https://gcc.gnu.org/viewcvs?rev=219859root=gccview=rev Log: PR ipa/64218 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check whether function is an alias. Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-inline.c
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #12 from Jan Hubicka hubicka at gcc dot gnu.org --- Would be possible to upload updated testcase? The reduced one seems to work for me on both x86-64 and ppc64.
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #13 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Created attachment 34479 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34479action=edit unreduced testcase Unreduced testcase is attached. Crashes both on ppc64 and x86_64. % g++ -w -c -O3 -std=c++11 recursive_variant_test.ii
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #14 from Jan Hubicka hubicka at gcc dot gnu.org --- Good, now it reproduces. The problem is that inliner removes the alias target and it leaves the alias itself to be removed by remove_unreachable_nodes. It however manages to crash ealrier looking if the alias shall be inlined as called once in somewhat convoluted test whether symbol is an alias. Index: ipa-inline.c === --- ipa-inline.c(revision 219826) +++ ipa-inline.c(working copy) @@ -866,7 +866,8 @@ want_inline_function_to_all_callers_p (s { bool has_hot_call = false; - if (node-ultimate_alias_target () != node) + /* Aliases gets inlined along with the function they alias. */ + if (node-alias) return false; /* Already inlined? */ if (node-global.inlined_to)
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #11 from Markus Trippelsdorf trippels at gcc dot gnu.org --- (In reply to Jan Hubicka from comment #10) Wonder if this one is fixed, too... No. It still crashes.
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #10 from Jan Hubicka hubicka at gcc dot gnu.org --- Wonder if this one is fixed, too...
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 Lars Gullik Bjønnes larsbj at gullik dot net changed: What|Removed |Added CC||larsbj at gullik dot net --- Comment #9 from Lars Gullik Bjønnes larsbj at gullik dot net --- I see the same segfault also outside of the boost testsuite, have not been able to produce a test case that is uploadable. (without significant reduction I am not allowed to post the code.)
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #8 from Antony Polukhin antoshkka at gmail dot com --- A few more observations: * Same Boost test compiles and works well on -mcpu=power8 with -fno-rtti * Test fails to compile on -mcpu=power8 *WITH RTTI on*: 0x109ccb0b crash_signal ?../../gcc/gcc/toplev.c:358 0x10513e10 symtab_node::get_alias_target() ?../../gcc/gcc/cgraph.h:2250 0x10513e10 symtab_node::ultimate_alias_target(availability*) ?../../gcc/gcc/symtab.c:1302 0x1101f367 cgraph_node::ultimate_alias_target(availability*) ?../../gcc/gcc/cgraph.h:2693 0x1101f367 want_inline_function_to_all_callers_p ?../../gcc/gcc/ipa-inline.c:840 0x1101f367 ipa_inline ?../../gcc/gcc/ipa-inline.c:2249 0x1101f367 execute ?../../gcc/gcc/ipa-inline.c:2562 Here's a whole comand line (just in case): g++ -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -fPIC -std=c++11 -mcpu=power8 -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I.. -c -o /home/trippels/results/boost/bin.v2/libs/variant/test/recursive_variant_test.test/gcc-5.0.0/release/pch-off/recursive_variant_test.o ../libs/variant/test/recursive_variant_test.cpp
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #7 from Jan Hubicka hubicka at gcc dot gnu.org --- I guess the problem is that we inline function but do not eliminate its (now dead) alias. Probably it is better to do so in inline-transform like this: Index: ipa-inline-transform.c === --- ipa-inline-transform.c (revision 218722) +++ ipa-inline-transform.c (working copy) @@ -199,6 +199,12 @@ until after these clones are materialized. */ !master_clone_with_noninline_clones_p (e-callee)) { + ipa_ref *alias; + /* Remove aliases (that must be dead by can_remove_node_now_p) +so they do not confuse us later. */ + while (e-callee-iterate_direct_aliases (0, alias)) + alias-referred-remove (); + /* TODO: When callee is in a comdat group, we could remove all of it, including all inline clones inlined into it. That would however need small function inlining to register edge removal hook to will need to find a way to reproduce this though. Honza
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 Martin Liška marxin at gcc dot gnu.org changed: What|Removed |Added CC||hubicka at gcc dot gnu.org Assignee|marxin at gcc dot gnu.org |unassigned at gcc dot gnu.org --- Comment #6 from Martin Liška marxin at gcc dot gnu.org --- Hello. You are Markus right, that it started with r218048, but it's actually caused by: r218024. Reason for that is that sreal, utilized for inlining purpose, was broken between r218008-r218048. Problematic commit: 2014-11-22 Jan Hubicka hubi...@ucw.cz PR ipa/63671 * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises and -fno-devirtualize more carefully. (can_remove_node_now_p): Update. Thanks, Martin
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 Markus Trippelsdorf trippels at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2014-12-08 Target Milestone|--- |5.0 Summary|ICE during compilation with |[5 Regression] ICE: |-fno-rtti -O3 |Segmentation fault ||(symtab_node::get_alias_tar ||get()) running Boost ||testsuite Ever confirmed|0 |1 --- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Reducing...
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P1
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 --- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Created attachment 34221 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=34221action=edit Somewhat reduced testcase Somewhat reduced, still over 1000 lines of code. trippels@gcc20 boost_root % g++ -w -c -O2 -std=c++11 recursive_variant_test.ii recursive_variant_test.ii:1450:1: internal compiler error: Segmentation fault } ^ 0xcc9fef crash_signal ../../gcc/gcc/toplev.c:358 0x900e72 symtab_node::get_alias_target() ../../gcc/gcc/cgraph.h:2247 0x900e72 symtab_node::ultimate_alias_target(availability*) ../../gcc/gcc/symtab.c:1293 0x1314a0a cgraph_node::ultimate_alias_target(availability*) ../../gcc/gcc/cgraph.h:2690 0x1314a0a want_inline_function_to_all_callers_p ../../gcc/gcc/ipa-inline.c:840 0x1314a0a ipa_inline ../../gcc/gcc/ipa-inline.c:2245 0x1314a0a execute ../../gcc/gcc/ipa-inline.c:2558 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug ipa/64218] [5 Regression] ICE: Segmentation fault (symtab_node::get_alias_target()) running Boost testsuite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64218 Markus Trippelsdorf trippels at gcc dot gnu.org changed: What|Removed |Added CC||marxin at gcc dot gnu.org --- Comment #5 from Markus Trippelsdorf trippels at gcc dot gnu.org --- Started with r218048.