https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105917
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Missed passthru jump |[10/11/12/13 regression] |function |Missed passthru jump | |function --- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Looking at the compiler explorer, the both testcases actually works up to gcc 9.5: reta(a) [clone .constprop.0]: xorl %eax, %eax ret retba(b) [clone .isra.0] [clone .constprop.0]: jmp reta(a) [clone .constprop.0] main: xorl %edi, %edi jmp retba(b) [clone .isra.0] [clone .constprop.0] Clang optimizes main to return 0 which we don't due to lack of return functions. Also ISRA may trigger on reta+retb and break out the integer rather than substructure but doesn't.