> Well, while the effect of -fstrict-aliasing is hard to describe > (TBAA _is_ a complex part of the standard), -fno-strict-aliasing > rules are simple. All loads and stores alias each other if they > cannot be proven not to alias by points-to analysis.
Yes, the rules are "simple", but are written in terms of OPTIMIZATIONS, not of language concepts: you can't talk about "points-to-analysis" in a language standard! In other words, -fwrapv says that we are modifying the language semantics to define signed overflows as wrapping and this will have effects on the optimizer (so the language effect is primary), while -fno-strict-aliasing says what the optimizer will do and hence how we're modifying the language (meaning the optimizer effect is primary). There's isn't that big a difference here, admittedly and I agree that it's unfortunate that we do this for strict aliasing, but I doing it for -fwrapv would be even worse for the above reason.