martong added a comment.

> Whenever the analyzer budget runs out just at the point where std::advance(), 
> std::prev() or std::next() is invoked the function are not inlined. This 
> results in strange behavior such as std::prev(v.end()) equals v.end(). To 
> prevent this model these functions if they were not inlined. It may also 
> happend that although std::advance() is inlined but a function it calls 
> inside (e.g. __advance() in some implementations) is not. This case is also 
> handled in this patch.

I suppose we could get this strange behavior with `std::distance` too? Would it 
be worth to handle that as well here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76361



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

Reply via email to