Matthew Voss | e4b0144 | 2018-06-12 22:22:35 +0000 | [diff] [blame] | 1 | // RUN: %clang_analyze_cc1 -analyzer-checker=core,unix.Malloc,debug.ExprInspection -analyzer-max-loop 4 -analyzer-config widen-loops=true -verify %s |
| 2 | |
| 3 | void clang_analyzer_eval(int); |
| 4 | |
| 5 | struct A { |
| 6 | ~A() {} |
| 7 | }; |
| 8 | struct B : public A {}; |
| 9 | |
| 10 | void invalid_type_region_access() { |
| 11 | const A &x = B(); |
| 12 | for (int i = 0; i < 10; ++i) { } |
| 13 | clang_analyzer_eval(&x != 0); // expected-warning{{TRUE}} |
| 14 | } // expected-warning@-1{{reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to true}} |