> Date: Sat, 19 Jun 2021 16:40:08 +0100 > From: Dmitrii Pasechnik <dima.pasech...@cs.ox.ac.uk> > Cc: bo...@kolpackov.net, bug-make <bug-make@gnu.org> > > Compiler does not guarantee you that doing something with p[-1] > is not going to end in a segfault. It's hack, as it just happens to work, but > YMMV. > > E.g. clang 10, or Apple's clang 12, will print a warning: > > warning: array index -1 is before the beginning of the array [-Warray-bounds] > printf("%d", p[-1]); > ^ ~~
That warning is a bug in the compiler. p is not an array, it's a pointer into an array, and it doesn't have to (and in this case actually does not) point to the first element of that array.