================
@@ -813,10 +813,7 @@ FunctionParmMutationAnalyzer::findMutation(const 
ParmVarDecl *Parm) {
   // before analyzing parameters of A. Then when analyzing the second "call A",
   // FunctionParmMutationAnalyzer can use this memoized value to avoid infinite
   // recursion.
-  Results[Parm] = nullptr;
-  if (const Stmt *S = BodyAnalyzer.findMutation(Parm))
-    return Results[Parm] = S;
-  return Results[Parm];
+  return Results[Parm] = BodyAnalyzer.findMutation(Parm);
----------------
kazutakahirata wrote:

We have the following a few lines above:

```
  const auto Memoized = Results.find(Parm);
  if (Memoized != Results.end())
    return Memoized->second;
```

Could we turn that into something like this and use the iterator from 
`try_emplace`?

```
  auto [Memoized, Inserted] = Results.try_emplace(Parm);
  if (!Inserted)
    return Memoized->second;

  Memoized->second = ...;
```

Maybe we should rename `Memorized`.  The name would sound strange if the 
insertion is successful.


https://github.com/llvm/llvm-project/pull/125283
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to