Skip to content

Commit 0d21ef4

Browse files
authored
[clang][mutation analyzer][NFC] Simplify code in ExprMutationAnalyzer (#125283)
1 parent d0a142e commit 0d21ef4

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

clang/lib/Analysis/ExprMutationAnalyzer.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -806,17 +806,15 @@ FunctionParmMutationAnalyzer::FunctionParmMutationAnalyzer(
806806

807807
const Stmt *
808808
FunctionParmMutationAnalyzer::findMutation(const ParmVarDecl *Parm) {
809-
const auto Memoized = Results.find(Parm);
810-
if (Memoized != Results.end())
811-
return Memoized->second;
809+
auto [Place, Inserted] = Results.try_emplace(Parm);
810+
if (!Inserted)
811+
return Place->second;
812+
812813
// To handle call A -> call B -> call A. Assume parameters of A is not mutated
813814
// before analyzing parameters of A. Then when analyzing the second "call A",
814815
// FunctionParmMutationAnalyzer can use this memoized value to avoid infinite
815816
// recursion.
816-
Results[Parm] = nullptr;
817-
if (const Stmt *S = BodyAnalyzer.findMutation(Parm))
818-
return Results[Parm] = S;
819-
return Results[Parm];
817+
return Place->second = BodyAnalyzer.findMutation(Parm);
820818
}
821819

822820
} // namespace clang

0 commit comments

Comments
 (0)