text: // RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
  
  int test1() {
    int *p = (int *)sizeof(int);
    p -= 1;
    return *p; // expected-warning {{Dereference of null pointer}}
  }
  
  int test2() {
    int *p = (int *)sizeof(int);
    p -= 2;
    p += 1;
    return *p; // expected-warning {{Dereference of null pointer}}
  }
  
  int test3() {
    int *p = (int *)sizeof(int);
    p++;
    p--;
    p--;
    return *p; // expected-warning {{Dereference of null pointer}}
  }
  
  int test4() {
    // 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}}
  }
  