Undefined Behaviour as usual
Undefined Behaviour as usual
Posted Feb 24, 2024 11:28 UTC (Sat) by hsivonen (subscriber, #91034)In reply to: Undefined Behaviour as usual by geofft
Parent article: Stenberg: DISPUTED, not REJECTED
> Signed overflow being undefined behavior is a little bit silly because a well-intentioned optimizing compiler will only use that optimization for one purpose: to emit whatever the underlying CPU's most efficient arithmetic instructions are to handle the non-overflowing case.
This is not accurate. Compilers use the signed integer overflow UB for assuming that it doesn’t happen, which permits mathematical reasoning that’s valid in non-modular integer domain.
Google uses int for loop counters, and they seem to want the optimizations that arise from signed overflow being UB and, therefore, assumed not happening by the compiler.
https://google.github.io/styleguide/cppguide.html#Integer...