https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106816
--- Comment #4 from Simon Rainer <gcc.gnu at vvalter dot com> --- That's weird, I still get the following with your patch applied: main: .LFB2: .cfi_startproc subq $8, %rsp .cfi_def_cfa_offset 16 call _Z5_Z1fvv@PLT movl $1, %eax addq $8, %rsp .cfi_def_cfa_offset 8 ret .cfi_endproc I double checked that and reran a full bootstrap, but maybe I'm doing something wrong. I would also be surprised if information about volatile, readonly, and pure are enough to detect that the function is noreturn, wouldn't that need to be a separate information?