Hi! For the following program: $ cat buf.c #include int main(void) { char *p, buf[5]; p = buf + 6; printf("%p\n", p); } There are no warnings in gcc, as I would expect: $ gcc -Wall -Wextra buf.c -O0 Clang does warn, however: $ clang -Weverything -Wall -Wextra buf.c -O0 buf.c:8:17: warning: format specifies type 'void *' but the argument has type 'char *' [-Wformat-pedantic] printf("%p\n", p); ~~ ^ %s buf.c:7:6: warning: the pointer incremented by 6 refers past the end of the array (that contains 5 elements) [-Warray-bounds-pointer-arithmetic] p = buf + 6; ^ ~ buf.c:5:2: note: array 'buf' declared here char *p, buf[5]; ^ 2 warnings generated. Cheers, Alex --