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