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



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to