Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reapply [analyzer] Simplify SVal for simple NonLoc->Loc casts
Reapply after fixing the test by enabling the `debug.ExprInspection` checker. ----- NonLoc symbolic SVal to Loc casts are not supported except for nonloc::ConcreteInt. This change simplifies the source SVals so that the more casts can go through nonloc::ConcreteInt->loc::ConcreteInt path. For example: void test_simplified_before_cast_add(long long t1) { long long t2 = t1 + 3; if (!t2) { int *p = (int *) t2; clang_analyzer_eval(p == 0); // expected-warning{{TRUE}} } } If simplified, 't2' is 0, resulting 'p' is nullptr, otherwise 'p' is unknown. Fixes #62232
- Loading branch information