https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99151
--- Comment #6 from Sebastian Huber <sebastian.hu...@embedded-brains.de> --- (In reply to Eric Botcazou from comment #5) > static void > sparc_asm_function_epilogue (FILE *file) > { > /* If the last two instructions of a function are "call foo; dslot;" > the return address might point to the first instruction in the next > function and we have to output a dummy nop for the sake of sane > backtraces in such cases. This is pointless for sibling calls since > the return address is explicitly adjusted. */ This nop behaviour could be a bit inconsistent across architectures. For example, arm and powerpc don't generate a nop here. I still think that the profiling counter increment in the __builtin_unreachable() path is a bug.