xazax.hun added a comment.

Thanks! Knowing the context, I am much happier with the direction overall. Is 
the plan to analyze a mock of std::optional instead of the actual code in the 
STL? How will that mock be shipped? Would that be embedded in the binary?

In D130306#3676475 <https://reviews.llvm.org/D130306#3676475>, @ymandel wrote:

> Gabor, I fully agree. We need to start paying down the debt on the 
> unsoundness, reducing it where possible and otherwise giving users control 
> over whether to incur it.

I'm glad that this is still on the roadmap. I am a bit worried about how hard 
it will be to make the current memory model sound. Generally, I saw some 
researchers arguing that the access path approach 
<https://www.youtube.com/watch?v=LTRykVVDfgE> approach is a better fit for 
dataflow analysis. See this paper <https://bodden.de/pubs/bodden18secret.pdf> 
as an example. Although admittedly, I do not fully agree with everything they 
claim, they focus on distributive problems in that paper, and I found that most 
actual problems that we want to solve are not distributive. But whatever model 
we end up using, to restore soundness we might need to introduce a way to 
summarize certain constructs in our memory model. There are some ideas in this 
<https://arxiv.org/pdf/1403.4910.pdf> survey paper.

> However, as Sam wrote, we did not expect to be incurring any new unsoundness 
> here.

I fully agree that this patch itself will not introduce new unsoundness (after 
the fixme mentioned in the description is resolved). My main concerns were:

- The framework started to feel more similar to symbolic execution than 
abstract interpretation, see the answer to this 
<https://cstheory.stackexchange.com/questions/19708/symbolic-execution-is-a-case-of-abstract-interpretation>
 question on the differences.
- I was a bit worried that adding more features before fixing the soundness 
issues might make fixing those problems harder.
- I was not sure the current approach would scale to general context-sensitive 
analysis. But looks like that is a non-goal for now. Doing this to model 
certain types of interest makes sense to me and is a good first step.

Overall, I am excited for context-sensitive analysis, and some of my concerns 
are addressed. Looking forward to the follow-up patches :)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130306

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

Reply via email to