https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80458
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- In that case no control flow analysis is needed, it's clear that the missing return is always reached. With the conditional exit it depends on whether p can be null, which requires more analysis.