martong added a comment.

> P.S. So, like, we could try to emit the warning only if we covered enough 
> execution paths to prove that there's either dead code or the warning is 
> true. Then we would no longer care about invalidation problems. 
> Unfortunately, i don't have any specific suggestion of how to prove such 
> facts for an arbitrary CFG.

If I understand you correctly, this would mean that we have to reason about all 
possible execution paths at the same time to do this. Actually, that would be 
possible only with some kind of a fix-point flow-analysis and clearly the 
symbolic execution we have in CSA is a completely different beast (it reasons 
about one path where there is a bug).

> P.P.S. Actually you know what, maybe we should only drop the report if the 
> constraint over the invalidated value contradicts the constraint over the old 
> value. That'll make things a bit more complicated and will require a visitor 
> indeed, though hopefully not as complicated as concrete value tracking, as 
> we're still interested in only one region at a time.

How would that be different than proving the feasibility of the path with Z3? 
Could we reuse Mikhail's work here, or that would be overkill for this task?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75698/new/

https://reviews.llvm.org/D75698



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

Reply via email to