steakhal wrote:

So, according to the AI, the FP is caused by an assumption that shouldn't be 
possible.
Namely, `foos.stqh_first == fi` should never hold.

In terms of code, this translates to `assert(foos.stqh_first != fi);`

What happens if you put this assert into your test code, would the FP go away? 
If so, is that a viable solution to your problem instead of patching the 
analyzer engine?

My argument is that in symbolic execution we should not make assumptions of the 
code without hints/indications. So we are technically not permitted to assume 
that this link list is not circular. In fact, if anything, we should assume the 
opposite because why would the code check `foos.stqh_first == fi` if it's known 
to be false all the time? It would make no sense.

https://github.com/llvm/llvm-project/pull/177449
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to