[PATCH] D44347: [analyzer] symbol_iterator must iterate through the symbolic base.

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 9 19:16:36 PST 2018


NoQ added a comment.

Leak false-negatives that result from bugs in `Environment::removeDeadBindings()` and `RegionStoreManager::removeDeadBindings()` are also only appearing due to the overall zombie symbol problem we have (https://reviews.llvm.org/D18860). The bugs are in the code that populates the dead set, however the dead set shouldn't have existed in the first place.

Also the `if (s) {}` part of the `test_loc_as_integer_element_index_lifetime()` test case is vital because otherwise the symbol would turn into a zombie and there'd be no leak false positive. But by saying `if (s) {}` we're declaring that it is the constraint manager who is responsible for putting the symbol into the dead set. The same is true for the original test case (`test_region_referenced_only_through_field_in_store_value()`) but there we'd have the branching anyway because the test is also designed to show the infeasible path.


https://reviews.llvm.org/D44347





More information about the cfe-commits mailing list