- Remove AnonTypedRegion, which is not to be used.
- Prepare AnonPointeeRegioin for later use.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58595 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/MemRegion.cpp b/lib/Analysis/MemRegion.cpp
index 14da4db..85ad3d8 100644
--- a/lib/Analysis/MemRegion.cpp
+++ b/lib/Analysis/MemRegion.cpp
@@ -44,26 +44,22 @@
ProfileRegion(ID, Ex, Cnt);
}
-void AnonTypedRegion::ProfileRegion(llvm::FoldingSetNodeID& ID, QualType T,
- const MemRegion* superRegion) {
- ID.AddInteger((unsigned) AnonTypedRegionKind);
- ID.Add(T);
- ID.AddPointer(superRegion);
+QualType AnonPointeeRegion::getType(ASTContext& C) const {
+ QualType T = C.getCanonicalType(Pointer->getType());
+ PointerType* PTy = cast<PointerType>(T.getTypePtr());
+
+ QualType PointeeTy = C.getCanonicalType(PTy->getPointeeType());
+ return PointeeTy;
}
void AnonPointeeRegion::ProfileRegion(llvm::FoldingSetNodeID& ID,
- const VarDecl* VD, QualType T,
+ const VarDecl* VD,
const MemRegion* superRegion) {
ID.AddInteger((unsigned) AnonPointeeRegionKind);
- ID.Add(T);
ID.AddPointer(VD);
ID.AddPointer(superRegion);
}
-void AnonTypedRegion::Profile(llvm::FoldingSetNodeID& ID) const {
- AnonTypedRegion::ProfileRegion(ID, T, superRegion);
-}
-
void CompoundLiteralRegion::Profile(llvm::FoldingSetNodeID& ID) const {
CompoundLiteralRegion::ProfileRegion(ID, CL, superRegion);
}
@@ -346,11 +342,9 @@
AnonPointeeRegion* MemRegionManager::getAnonPointeeRegion(const VarDecl* d) {
llvm::FoldingSetNodeID ID;
- QualType T = d->getType();
- QualType PointeeType = cast<PointerType>(T.getTypePtr())->getPointeeType();
MemRegion* superRegion = getUnknownRegion();
- AnonPointeeRegion::ProfileRegion(ID, d, PointeeType, superRegion);
+ AnonPointeeRegion::ProfileRegion(ID, d, superRegion);
void* InsertPos;
MemRegion* data = Regions.FindNodeOrInsertPos(ID, InsertPos);
@@ -358,7 +352,7 @@
if (!R) {
R = (AnonPointeeRegion*) A.Allocate<AnonPointeeRegion>();
- new (R) AnonPointeeRegion(d, PointeeType, superRegion);
+ new (R) AnonPointeeRegion(d, superRegion);
Regions.InsertNode(R, InsertPos);
}