[clang] [LifetimeSafety] Detect iterator invalidation through container aliases (PR #195231)
Utkarsh Saxena via cfe-commits
cfe-commits at lists.llvm.org
Fri May 1 04:47:03 PDT 2026
================
@@ -345,37 +384,41 @@ void Invalidate1Use2IsOk() {
auto it = s.strings1.begin();
s.strings2.push_back("1");
*it;
-}void Invalidate1Use2ViaRefIsOk() {
+}
+
+// FIXME: Requires field-sensitive AccessPaths to fix.
+void Invalidate1Use2ViaRefIsOk() {
S s;
- auto it = s.strings2.begin();
+ auto it = s.strings2.begin(); // expected-warning {{object whose reference is captured is later invalidated}}
auto& strings2 = s.strings2;
----------------
usx95 wrote:
The correct version is not a false-positive.
```cpp
auto it = s.strings2.begin();
auto& strings1 = s.strings1;
strings1.push_back("1");
*it;
```
This should have a FIXME if it fires.
https://github.com/llvm/llvm-project/pull/195231
More information about the cfe-commits
mailing list