https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70646
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Status|UNCONFIRMED |NEW Last reconfirmed| |2016-04-14 CC| |hubicka at gcc dot gnu.org, | |jamborm at gcc dot gnu.org Component|c |ipa Ever confirmed|0 |1 --- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. ;; Function broken (broken, funcdef_no=2, decl_uid=1764, cgraph_uid=2, symbol_order=2) (executed once) __attribute__((noclone, noinline)) broken (u64 * shost) { <bb 2>: __builtin_unreachable (); } after inlining we see: <bb 2>: node_name[0] = 255; node_name[1] = 255; node_name[2] = 255; node_name[3] = 255; node_name[4] = 255; node_name[5] = 255; node_name[6] = 255; node_name[7] = 255; _14 = MEM[(const u64 *)&node_name]; _15 = __builtin_constant_p (_14); if (_15 != 0) goto <bb 3>; else goto <bb 4>; ... <bb 4>: iftmp.0_37 = _39(D); __builtin_unreachable (); which seems to be introduced by IPA CP: __builtin_unreachable/9 (__builtin_unreachable) @0x7f1563274cf0 Type: function Visibility: external public References: Referring: Availability: not_available First run: 0 Function flags: Called by: wwn_to_u64.constprop.0/8 Calls: wwn_to_u64.constprop.0/8 (wwn_to_u64.constprop) @0x7f1563274000 Type: function definition analyzed Visibility: References: Referring: Function wwn_to_u64.constprop/8 is inline copy in broken/2 Clone of wwn_to_u64/1 Availability: local First run: 0 Function flags: local Called by: broken/2 (inlined) (1.00 per call) Calls: __builtin_constant_p/5 (1.00 per call) __builtin_unreachable/9