// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s int test1(void) { int *p = (int *)sizeof(int); p -= 1; return *p; // expected-warning {{Dereference of null pointer}} } int test2(void) { int *p = (int *)sizeof(int); p -= 2; p += 1; return *p; // expected-warning {{Dereference of null pointer}} } int test3(void) { int *p = (int *)sizeof(int); p++; p--; p--; return *p; // expected-warning {{Dereference of null pointer}} } int test4(void) { // This is a special case where pointer arithmetic is not calculated to // preserve useful warnings on dereferences of null pointers. int *p = 0; p += 1; return *p; // expected-warning {{Dereference of null pointer}} }