https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106696
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Component|ipa |c++ Resolution|--- |INVALID --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- For c++ it is undefined if you fall throug out of the scope without a return if there is a non void return type. -fsanitize=undefined will detect this at runtime. In c, it is only undefined if the return value is used. After the call. This is why c and c++ frontend have different behaviors here.