23 lines
614 B
C++
23 lines
614 B
C++
// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config c++-temp-dtor-inlining=false -verify -analyzer-config eagerly-assume=false %s
|
|
// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config c++-temp-dtor-inlining=true -DINLINE -verify -analyzer-config eagerly-assume=false %s
|
|
|
|
void clang_analyzer_eval(bool);
|
|
|
|
struct S {
|
|
int &x;
|
|
|
|
S(int &x) : x(x) { ++x; }
|
|
~S() { --x; }
|
|
};
|
|
|
|
void foo() {
|
|
int x = 0;
|
|
S(x).x += 1;
|
|
clang_analyzer_eval(x == 1);
|
|
#ifdef INLINE
|
|
// expected-warning@-2{{TRUE}}
|
|
#else
|
|
// expected-warning@-4{{UNKNOWN}}
|
|
#endif
|
|
}
|