https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85103
--- Comment #5 from Pat Haugen <pthaugen at gcc dot gnu.org> --- A little more detail. 48t.fnsplit splits mainGtU() into 2 functions: mainGtU(): which contains a few early exit tests and then a call to mainGtU.part.0() mainGtU.part.0(): contains the remainder of mainGtU(), including the loop Following is then the behavior in 79i.inline: r257581: The 3 mainGtU() calls are inlined into their caller mainSimpleSort(), and the mainGtU.part.0() calls remain. r257582: mainGtU.part.0() is inlined back into mainGtU(), the first mainGtU() call in mainSimpleSort() is inlined but the remaining 2 mainGtU() calls remain.