https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63551
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Status|UNCONFIRMED |NEW Last reconfirmed| |2014-10-16 CC| |hubicka at gcc dot gnu.org Target Milestone|--- |5.0 Summary|wrong code (segfaults) at |[4.9/5 Regression] wrong |-Os on x86_64-linux-gnu |code (segfaults) at -Os on | |x86_64-linux-gnu Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. fn2 () { <bb 2>: d = 0; __builtin_unreachable (); } ? Somehow IPA inline inserts this call. Considering fn1/2 with 7 size to be inlined into fn2/3 in t.c:22 Estimated badness is -1073741826, frequency 1.00. Badness calculation for fn2/3 -> fn1/2 size growth -2, time 0 big_speedup -1073741826: Growth -2 <= 0 Introduced new external node (__builtin_unreachable/7). Processing frequency fn1 from ipa-inline-analysis.c:edge_set_predicate 757 if (predicate && false_predicate_p (predicate) && e->callee) 758 { 759 struct cgraph_node *callee = !e->inline_failed ? e->callee : NULL; 760 761 e->redirect_callee (cgraph_node::get_create 762 (builtin_decl_implicit (BUILT_IN_UNREACHABLE))); 763 e->inline_failed = CIF_UNREACHABLE; 764 if (callee) 765 callee->remove_symbol_and_inline_clones (); thus there is some bug in predicate compute.