// 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 | |
} |