diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-11-03 04:12:24 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-11-03 04:12:24 +0000 |
commit | 817c67daf845b35a242cd9b68e9c5eccf09c63df (patch) | |
tree | c10910ea2c25521112e480f77236cc4619bb2d80 /lib/Analysis/MemRegion.cpp | |
parent | d5a56f0e5d8f495a471fe739195f86756e22de48 (diff) |
- 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
Diffstat (limited to 'lib/Analysis/MemRegion.cpp')
-rw-r--r-- | lib/Analysis/MemRegion.cpp | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/lib/Analysis/MemRegion.cpp b/lib/Analysis/MemRegion.cpp index 14da4db990..85ad3d87fa 100644 --- a/lib/Analysis/MemRegion.cpp +++ b/lib/Analysis/MemRegion.cpp @@ -44,26 +44,22 @@ void AllocaRegion::Profile(llvm::FoldingSetNodeID& ID) const { 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 @@ MemRegionManager::getObjCObjectRegion(const ObjCInterfaceDecl* d, 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 @@ AnonPointeeRegion* MemRegionManager::getAnonPointeeRegion(const VarDecl* d) { if (!R) { R = (AnonPointeeRegion*) A.Allocate<AnonPointeeRegion>(); - new (R) AnonPointeeRegion(d, PointeeType, superRegion); + new (R) AnonPointeeRegion(d, superRegion); Regions.InsertNode(R, InsertPos); } |