brintos

brintos / llvm-project-archived public Read only

0
0
Text · 711 B · 3851701 Raw
31 lines · c
1// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s2 3int test1(void) {4  int *p = (int *)sizeof(int);5  p -= 1;6  return *p; // expected-warning {{Dereference of null pointer}}7}8 9int test2(void) {10  int *p = (int *)sizeof(int);11  p -= 2;12  p += 1;13  return *p; // expected-warning {{Dereference of null pointer}}14}15 16int test3(void) {17  int *p = (int *)sizeof(int);18  p++;19  p--;20  p--;21  return *p; // expected-warning {{Dereference of null pointer}}22}23 24int test4(void) {25  // This is a special case where pointer arithmetic is not calculated to26  // preserve useful warnings on dereferences of null pointers.27  int *p = 0;28  p += 1;29  return *p; // expected-warning {{Dereference of null pointer}}30}31