[clang] [LifetimeSafety] Fix crash on explicit object member functions (PR #212154)

Utkarsh Saxena via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 27 01:35:08 PDT 2026


================
@@ -929,6 +930,8 @@ void FactsGenerator::handleMovedArgsInCall(const FunctionDecl *FD,
   for (unsigned I = IsInstance;
        I < Args.size() && I < FD->getNumParams() + IsInstance; ++I) {
     const ParmVarDecl *PVD = FD->getParamDecl(I - IsInstance);
+    if (PVD->isExplicitObjectParameter())
----------------
usx95 wrote:

If I understand correctly, these can be moved but we are choosing not to mark them as moved for consistency ?
Suggestion for a comment:
```
// In principle, explicit object parameters can be moved, but skip marking them as moved
// for consistency with implicit 'this'.
```

https://github.com/llvm/llvm-project/pull/212154


More information about the cfe-commits mailing list