| // RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config c++-inlining=constructors -verify %s |
| void clang_analyzer_eval(bool); |
| int getx() const { return x; } |
| void testNullObject(A *a) { |
| clang_analyzer_eval(a); // expected-warning{{UNKNOWN}} |
| (void)a->getx(); // assume we know what we're doing |
| clang_analyzer_eval(a); // expected-warning{{TRUE}} |
| clang_analyzer_eval(x.getx() == 3); // expected-warning{{TRUE}} |
| clang_analyzer_eval(x.getx() == 3); // expected-warning{{TRUE}} |
| clang_analyzer_eval(x.getx() == 3); // expected-warning{{TRUE}} |
| clang_analyzer_eval(x.getx() == 3); // expected-warning{{TRUE}} |
| void checkThatCopyConstructorDoesNotInvalidateObjectBeingCopied() { |
| clang_analyzer_eval(t.x == 0); // expected-warning{{TRUE}} |