23 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config c++-temp-dtor-inlining=false -verify -analyzer-config eagerly-assume=false %s2// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config c++-temp-dtor-inlining=true -DINLINE -verify -analyzer-config eagerly-assume=false %s3 4void clang_analyzer_eval(bool);5 6struct S {7 int &x;8 9 S(int &x) : x(x) { ++x; }10 ~S() { --x; }11};12 13void foo() {14 int x = 0;15 S(x).x += 1;16 clang_analyzer_eval(x == 1);17#ifdef INLINE18 // expected-warning@-2{{TRUE}}19#else20 // expected-warning@-4{{UNKNOWN}}21#endif22}23