[PATCH] D22862: [analyzer] Fix for PR15623: eliminate unwanted ProgramState checker data propagation.

Anton Yartsev via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 13 18:32:36 PDT 2016

ayartsev added a comment.

@zaks.anna, sorry for the noise about the "misc-ps-region-store.m" test, my mistake.

In https://reviews.llvm.org/D22862#508674, @NoQ wrote:

> Hmm. The test in `unwanted-programstate-data-propagation.c` passes on my machine even without the patch, and the return value on the respective path is correctly represented as `(conj_$6{void *}) != 0U`, which comes from the `evalCast()` call in `VisitLogicalExpr()` and is the default behavior of `evalCast()` for Loc to pointer casts. There seems to be something amiss.

Hm, updated to trunk, now the test passes without the patch. Changing "_Bool" to "int" in the test reproduces the issue.

In https://reviews.llvm.org/D22862#501315, @dcoughlin wrote:

> Does this seem reasonable?

Thanks for the idea, working on the solution.

@dcoughlin, @NoQ, could you, please, tell, how you get dumps of symbolic expressions and constraints like "(conj_$6{void *}) != 0U"? Tried different debug.* checkers and clang_analyzer_explain() but failed.


More information about the cfe-commits mailing list