> On Jul 29, 2019, at 6:24 AM, David Laight <David.Laight@xxxxxxxxxx> wrote: > > From: Moore, Robert >> Sent: 26 July 2019 20:36 > ... >> This is because pointer arithmetic >> on a pointer not pointing to an array is an undefined behavior (C11 6.5.6, constraint 8). > ... > > The standards committee as smoking dope again :-) > If that is enforced as a compiler warning/error a lot of code 'breaks'. > Anything that does: > struct foo *foo = ...; > struct bar *bar = (void *)(foo + 1); > suddenly becomes 'invalid’. The clang will generate a warning only if “foo" is NULL.