‹ BackHN Continuity

Thread

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

173 points · 290 comments · ibobev

  1. account42 · · focus · HN ↗
    Unfortunate. There isn't ever a good reason to have an infinite loop so concerned compilers could have just diagnosed this as a warning.
    1. echoangle · · focus · HN ↗
      The article mentions a use case for that:

      > What I found is that this is common in embedded and kernel code as a halt-on-error pattern. When a fatal error occurs and there’s no operating system to exit to, you simply stop:

      1. account42 · · focus · HN ↗
        Low level code can and should use assembly to get the precise effect they desire in these cases.
        1. mdspan · · focus · HN ↗
          That would be pretty cumbersome though. If you're targeting N different architectures, you would have to write N different assembly blocks.
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.