[PATCH] D158981: [clang][dataflow][NFC] Eliminate `getStorageLocation()` / `setStorageLocation()` in `DataflowAnalysisContext`.
Martin Böhme via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 28 23:54:08 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rGaef05a12329c: [clang][dataflow][NFC] Eliminate `getStorageLocation()` / `setStorageLocation… (authored by mboehme).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D158981/new/
https://reviews.llvm.org/D158981
Files:
clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
Index: clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
===================================================================
--- clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
+++ clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
@@ -74,19 +74,21 @@
StorageLocation &
DataflowAnalysisContext::getStableStorageLocation(const VarDecl &D) {
- if (auto *Loc = getStorageLocation(D))
+ if (auto *Loc = DeclToLoc.lookup(&D))
return *Loc;
auto &Loc = createStorageLocation(D.getType().getNonReferenceType());
- setStorageLocation(D, Loc);
+ DeclToLoc[&D] = &Loc;
return Loc;
}
StorageLocation &
DataflowAnalysisContext::getStableStorageLocation(const Expr &E) {
- if (auto *Loc = getStorageLocation(E))
+ const Expr &CanonE = ignoreCFGOmittedNodes(E);
+
+ if (auto *Loc = ExprToLoc.lookup(&CanonE))
return *Loc;
- auto &Loc = createStorageLocation(E.getType());
- setStorageLocation(E, Loc);
+ auto &Loc = createStorageLocation(CanonE.getType());
+ ExprToLoc[&CanonE] = &Loc;
return Loc;
}
Index: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
===================================================================
--- clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
+++ clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
@@ -103,39 +103,6 @@
/// Returns a stable storage location for `E`.
StorageLocation &getStableStorageLocation(const Expr &E);
- /// Assigns `Loc` as the storage location of `D`.
- ///
- /// Requirements:
- ///
- /// `D` must not be assigned a storage location.
- void setStorageLocation(const ValueDecl &D, StorageLocation &Loc) {
- assert(!DeclToLoc.contains(&D));
- DeclToLoc[&D] = &Loc;
- }
-
- /// Returns the storage location assigned to `D` or null if `D` has no
- /// assigned storage location.
- StorageLocation *getStorageLocation(const ValueDecl &D) const {
- return DeclToLoc.lookup(&D);
- }
-
- /// Assigns `Loc` as the storage location of `E`.
- ///
- /// Requirements:
- ///
- /// `E` must not be assigned a storage location.
- void setStorageLocation(const Expr &E, StorageLocation &Loc) {
- const Expr &CanonE = ignoreCFGOmittedNodes(E);
- assert(!ExprToLoc.contains(&CanonE));
- ExprToLoc[&CanonE] = &Loc;
- }
-
- /// Returns the storage location assigned to `E` or null if `E` has no
- /// assigned storage location.
- StorageLocation *getStorageLocation(const Expr &E) const {
- return ExprToLoc.lookup(&ignoreCFGOmittedNodes(E));
- }
-
/// Returns a pointer value that represents a null pointer. Calls with
/// `PointeeType` that are canonically equivalent will return the same result.
/// A null `PointeeType` can be used for the pointee of `std::nullptr_t`.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158981.554196.patch
Type: text/x-patch
Size: 2793 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230829/2dbd67f3/attachment.bin>
More information about the cfe-commits
mailing list