[PATCH] D131021: [clang][dataflow] Rename member to make it clear that it isn't stable
Stanislav Gatev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 2 14:13:59 PDT 2022
sgatev created this revision.
sgatev added reviewers: ymandel, xazax.hun, gribozavr2, wyt.
Herald added subscribers: martong, tschuett, rnkovacs.
Herald added a reviewer: NoQ.
Herald added a project: All.
sgatev requested review of this revision.
Herald added a project: clang.
Rename `DataflowAnalysisContext::getStableStorageLocation(QualType)`
to `createStorageLocation, to make it clear that it doesn't return a
stable storage location.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D131021
Files:
clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
Index: clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
===================================================================
--- clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
+++ clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
@@ -337,7 +337,7 @@
}
StorageLocation &Environment::createStorageLocation(QualType Type) {
- return DACtx->getStableStorageLocation(Type);
+ return DACtx->createStorageLocation(Type);
}
StorageLocation &Environment::createStorageLocation(const VarDecl &D) {
Index: clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
===================================================================
--- clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
+++ clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
@@ -24,15 +24,14 @@
namespace clang {
namespace dataflow {
-StorageLocation &
-DataflowAnalysisContext::getStableStorageLocation(QualType Type) {
+StorageLocation &DataflowAnalysisContext::createStorageLocation(QualType Type) {
if (!Type.isNull() &&
(Type->isStructureOrClassType() || Type->isUnionType())) {
// FIXME: Explore options to avoid eager initialization of fields as some of
// them might not be needed for a particular analysis.
llvm::DenseMap<const ValueDecl *, StorageLocation *> FieldLocs;
for (const FieldDecl *Field : getObjectFields(Type))
- FieldLocs.insert({Field, &getStableStorageLocation(Field->getType())});
+ FieldLocs.insert({Field, &createStorageLocation(Field->getType())});
return takeOwnership(
std::make_unique<AggregateStorageLocation>(Type, std::move(FieldLocs)));
}
@@ -43,7 +42,7 @@
DataflowAnalysisContext::getStableStorageLocation(const VarDecl &D) {
if (auto *Loc = getStorageLocation(D))
return *Loc;
- auto &Loc = getStableStorageLocation(D.getType());
+ auto &Loc = createStorageLocation(D.getType());
setStorageLocation(D, Loc);
return Loc;
}
@@ -52,7 +51,7 @@
DataflowAnalysisContext::getStableStorageLocation(const Expr &E) {
if (auto *Loc = getStorageLocation(E))
return *Loc;
- auto &Loc = getStableStorageLocation(E.getType());
+ auto &Loc = createStorageLocation(E.getType());
setStorageLocation(E, Loc);
return Loc;
}
@@ -63,7 +62,7 @@
PointeeType.isNull() ? PointeeType : PointeeType.getCanonicalType();
auto Res = NullPointerVals.try_emplace(CanonicalPointeeType, nullptr);
if (Res.second) {
- auto &PointeeLoc = getStableStorageLocation(CanonicalPointeeType);
+ auto &PointeeLoc = createStorageLocation(CanonicalPointeeType);
Res.first->second =
&takeOwnership(std::make_unique<PointerValue>(PointeeLoc));
}
Index: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
===================================================================
--- clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
+++ clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
@@ -90,12 +90,12 @@
return *cast<T>(Vals.back().get());
}
- /// Returns a stable storage location appropriate for `Type`.
+ /// Returns a new storage location appropriate for `Type`.
///
/// Requirements:
///
/// `Type` must not be null.
- StorageLocation &getStableStorageLocation(QualType Type);
+ StorageLocation &createStorageLocation(QualType Type);
/// Returns a stable storage location for `D`.
StorageLocation &getStableStorageLocation(const VarDecl &D);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D131021.449433.patch
Type: text/x-patch
Size: 3469 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220802/6bc1eff6/attachment-0001.bin>
More information about the cfe-commits
mailing list