null-deref-ps.c revision 9704eacf27608cf3549014dd198b0f1148a4a3a0
1// RUN: clang -checker-simple -verify %s
2
3void f1(int *p) {
4  if (p) *p = 1;
5  else *p = 0; // expected-warning{{ereference}}
6}
7
8struct foo_struct {
9  int x;
10};
11
12int f2(struct foo_struct* p) {
13
14  if (p)
15    p->x = 1;
16
17  return p->x++; // expected-warning{{Dereference of null pointer.}}
18}
19
20int f3(char* x) {
21
22  int i = 2;
23
24  if (x)
25    return x[i - 1];
26
27  return x[i+1]; // expected-warning{{Dereference of null pointer.}}
28}
29
30