1 // RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
2
3 typedef unsigned uintptr_t;
4
f1()5 void f1() {
6 int *p;
7 *p = 0; // expected-warning{{Dereference of undefined pointer value}}
8 }
9
10 struct foo_struct {
11 int x;
12 };
13
f2()14 int f2() {
15 struct foo_struct *p;
16
17 return p->x++; // expected-warning{{Access to field 'x' results in a dereference of an undefined pointer value (loaded from variable 'p')}}
18 }
19
f3()20 int f3() {
21 char *x;
22 int i = 2;
23
24 return x[i + 1]; // expected-warning{{Array access (from variable 'x') results in an undefined pointer dereference}}
25 }
26
f3_b()27 int f3_b() {
28 char *x;
29 int i = 2;
30
31 return x[i + 1]++; // expected-warning{{Array access (from variable 'x') results in an undefined pointer dereference}}
32 }
33