I get some strange warnings doing pointer arithmetic.
#include <stddef.h> char x[3]; char *p=&x[3]; void foo(void) { ptrdiff_t f1=p-&x[0]; ptrdiff_t f2=p-x; }