llvm-project/clang/test/Analysis/invalid-deref.c

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

33 lines
721 B
C
Raw Normal View History

// RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
typedef unsigned uintptr_t;
void f1() {
int *p;
*p = 0; // expected-warning{{Dereference of undefined pointer value}}
}
struct foo_struct {
int x;
};
int f2() {
struct foo_struct *p;
return p->x++; // expected-warning{{Access to field 'x' results in a dereference of an undefined pointer value (loaded from variable 'p')}}
}
int f3() {
char *x;
int i = 2;
return x[i + 1]; // expected-warning{{Array access (from variable 'x') results in an undefined pointer dereference}}
}
int f3_b() {
char *x;
int i = 2;
return x[i + 1]++; // expected-warning{{Array access (from variable 'x') results in an undefined pointer dereference}}
}