baloghadamsoftware added a comment.

In D81718#2095043 <https://reviews.llvm.org/D81718#2095043>, @NoQ wrote:

> So it still thinks that the iterator is an object, whereas it should be 
> tracking the iterator as symbol instead. As expected, because your code fails 
> to discriminate between these two cases. You can't reorder checks in 
> `{set,get}IteratorPosition` to fix that (first check for symbol, then check 
> for region) because that'd break object iterators that reside in symbolic 
> regions; you need to repeat the check on the AST instead. Which makes the 
> reuse of that check proposed in this patch worthless.


This one is easy to overcome, because in case of pointers we need the pointer 
itself. The checker //knows// in advance, whether it is a pointer or not. 
However it //does not know// whether it is a value or a (constant) reference. 
However, with such iterator-specific behavior this function must go into the 
iterator library. (Pointers are symbols, references are objects.)

Do you have some alternative suggestions?


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

https://reviews.llvm.org/D81718



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

Reply via email to