https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111799
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm, I think we reach __builtin_unreachable always and that is confusing everything. If we inline s early on (via using the always_inline attribute). main turns into just __builtin_unreachable .