Richard Earnshaw wrote: C11: Summary of undefined behaviours.
— Addition or subtraction of a pointer into, or just beyond, an array object and an integer type produces a result that does not point into, or just beyond, the same array object (6.5.6). That's totally irrelevant given the addition is created by the optimizer. Wilco