[Analyzer] Iterator Modeling - Model `std::advance()`, `std::prev()` and `std::next()`
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. Differential Revision: https://reviews.llvm.org/D76361
Loading
Please sign in to comment