# HG changeset patch # User mir3636 # Date 1522484335 -32400 # Node ID c3a50d7877e8a291aae1a9b86faf05c3cbdb968c # Parent ab229f40eab24bce2956cb396858ec5891b54ed6 fix ipa-inline.c diff -r ab229f40eab2 -r c3a50d7877e8 gcc/ipa-inline.c --- a/gcc/ipa-inline.c Fri Mar 30 22:58:55 2018 +0900 +++ b/gcc/ipa-inline.c Sat Mar 31 17:18:55 2018 +0900 @@ -2180,7 +2180,14 @@ int *num_calls = (int *)data; bool callee_removed = false; #ifndef noCbC - while (node->callers && !node->global.inlined_to && !node->callers->call_stmt->vdef) + bool tail_call_f = false; + if (node->callees) { + if (node->callees->call_stmt) { + if (node->callees->call_stmt->vdef) + tail_call_f = gimple_call_tail_p (as_a (node->callees->call_stmt->vdef->ssa_name.def_stmt)); + } + } + while (node->callers && !node->global.inlined_to && !tail_call_f) { #else while (node->callers && !node->global.inlined_to)