[clang] [analyzer][NFC] Remove a redundant container lookup (PR #125064)
Balazs Benics via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 30 06:48:26 PST 2025
https://github.com/steakhal created https://github.com/llvm/llvm-project/pull/125064
I found this using my experimental checker present at: https://github.com/steakhal/llvm-project/tree/bb/add-redundant-lookup-checker
The idea for looking for redundant container lookups was inspired by #123376
If there is interest, I could think of upstreaming this alpha checker.
(For the StaticAnalyzer sources it was the only TP, and I had no FPs from the checker btw.)
>From 4ef560996b4f606c390da5a070dd930149545c7f Mon Sep 17 00:00:00 2001
From: Balazs Benics <benicsbalazs at gmail.com>
Date: Thu, 30 Jan 2025 15:40:53 +0100
Subject: [PATCH] [analyzer][NFC] Remove a redundant container lookup
I found this using my experimental checker present at:
https://github.com/steakhal/llvm-project/tree/bb/add-redundant-lookup-checker
The idea for looking for redundant container lookups was inspired by #123376
If there is interest, I could think of upstreaming this alpha checker.
---
clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp b/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
index 55bcb6e220e1ecf..7b2cccce93cfe64 100644
--- a/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
+++ b/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
@@ -488,15 +488,17 @@ ExplodedGraph::trim(ArrayRef<const NodeTy *> Sinks,
while (!WL2.empty()) {
const ExplodedNode *N = WL2.pop_back_val();
+ auto [Place, Inserted] = Pass2.try_emplace(N);
+
// Skip this node if we have already processed it.
- if (Pass2.contains(N))
+ if (!Inserted)
continue;
// Create the corresponding node in the new graph and record the mapping
// from the old node to the new node.
ExplodedNode *NewN = G->createUncachedNode(N->getLocation(), N->State,
N->getID(), N->isSink());
- Pass2[N] = NewN;
+ Place->second = NewN;
// Also record the reverse mapping from the new node to the old node.
if (InverseMap) (*InverseMap)[NewN] = N;
More information about the cfe-commits
mailing list