mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 01:56:05 +00:00

In addition to enabling more code reuse, this suppresses some false positives by allowing us to compare an element region to its base. See the ptr-arith.cpp test cases for an example. llvm-svn: 182780
23 lines
405 B
C++
23 lines
405 B
C++
// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -verify %s
|
|
// expected-no-diagnostics
|
|
struct X {
|
|
int *p;
|
|
int zero;
|
|
void foo () {
|
|
reset(p - 1);
|
|
}
|
|
void reset(int *in) {
|
|
while (in != p) // Loop must be entered.
|
|
zero = 1;
|
|
}
|
|
};
|
|
|
|
int test (int *in) {
|
|
X littleX;
|
|
littleX.zero = 0;
|
|
littleX.p = in;
|
|
littleX.foo();
|
|
return 5/littleX.zero; // no-warning
|
|
}
|
|
|