‹ BackHN Continuity

Thread

C++26: Trivial infinite loops are no longer undefined behaviour

173 points · 290 comments · ibobev

  1. Aurornis · · focus · HN ↗
    I never would have guessed that the unreachable() function would get executed in that example. Probably not something you’d encounter in practice, though I have seen some weird things happen with layers of #ifdef
    1. mathisfun123 · · focus · HN ↗
      > Probably not something you’d encounter in practice

      it's actually probably the most common footgun you'll encounter in practice: non-void functions with no return statements just keep executing past their end. ask me how i know.

      compile with -Wreturn-type if you want to avoid such things...

      1. kouosi · · focus · HN ↗
        > compile with -Wreturn-type if you want to avoid such things...

        Isn't -Wreturn-type enabled by default in both gcc and clang atleast for c++?

        1. mathisfun123 · · focus · HN ↗
          probably - i guess then i meant -Werror=return-type
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.