RedDocMD added a comment.

In D97183#2596865 <https://reviews.llvm.org/D97183#2596865>, @steakhal wrote:

> If the inner pointer participates in a branch condition guarding the 
> dereference, that memory region is gotta be important, right? So, we should 
> mark it so.
> A BugreportVisitor could easily transfer the information about the fact that 
> the dereference was guarded by that particular branch condition - and marking 
> the InnerPointerVal (MemRegion) important.
>
> This way the NoteTag for the `get()` could emit the warning.
>
> The other approach, you @RedDocMD proposed about checking the constraint for 
> the inner pointer, seems somewhat odd to me.
> It could work, but I think the visitor is cleaner.

TBH, I don't like my approach either. I feel that it leaves out some cases.
The InnerPointerVal memory region is not marked as interesting as of now, I 
have tried that out. The branch condition constraint is set by the 
ConstraintManager and it is queried via in the State in the method 
`smartptr::isNullSmartPtr` at `SmartPtrModelling.cpp:104`. I have to see if the 
`ConstraintManager` can mark the memory region as important. @steakhal, @NoQ 
what do you think?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97183

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

Reply via email to