C23 updated the definition of the [] operator to disallow negative subscripts with array type. I think you have to explicitly convert the array to a pointer type now.
int a[2]; a[-1]; // not ok (&a[0])[-1] // ok
C11: https://port70.net/~nsz/c/c11/n1570.html#6.5.2.1