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