summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/MemRegion.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-06-23 00:04:09 +0000
committerTed Kremenek <kremenek@apple.com>2009-06-23 00:04:09 +0000
commit2266640a7a63580ea817b229694bfee420a9b9ba (patch)
tree16e9128e4d4516362d068f5dcd41b20e33fbd5a9 /clang/lib/Analysis/MemRegion.cpp
parentbee30f58fb3f65d980fa15c14aa9546145521619 (diff)
downloadbcm5719-llvm-2266640a7a63580ea817b229694bfee420a9b9ba.tar.gz
bcm5719-llvm-2266640a7a63580ea817b229694bfee420a9b9ba.zip
MemRegionManager: Migrate getObjCObjectRegion() and getTypedViewRegion() to use
the new trait-based construction of MemRegion objects. llvm-svn: 73926
Diffstat (limited to 'clang/lib/Analysis/MemRegion.cpp')
-rw-r--r--clang/lib/Analysis/MemRegion.cpp33
1 files changed, 3 insertions, 30 deletions
diff --git a/clang/lib/Analysis/MemRegion.cpp b/clang/lib/Analysis/MemRegion.cpp
index 2afd0b40ec9..bd42858a4fa 100644
--- a/clang/lib/Analysis/MemRegion.cpp
+++ b/clang/lib/Analysis/MemRegion.cpp
@@ -325,40 +325,13 @@ MemRegionManager::getObjCIvarRegion(const ObjCIvarDecl* d,
ObjCObjectRegion*
MemRegionManager::getObjCObjectRegion(const ObjCInterfaceDecl* d,
- const MemRegion* superRegion) {
- llvm::FoldingSetNodeID ID;
- DeclRegion::ProfileRegion(ID, d, superRegion,
- MemRegion::ObjCObjectRegionKind);
-
- void* InsertPos;
- MemRegion* data = Regions.FindNodeOrInsertPos(ID, InsertPos);
- ObjCObjectRegion* R = cast_or_null<ObjCObjectRegion>(data);
-
- if (!R) {
- R = (ObjCObjectRegion*) A.Allocate<ObjCObjectRegion>();
- new (R) ObjCObjectRegion(d, superRegion);
- Regions.InsertNode(R, InsertPos);
- }
-
- return R;
+ const MemRegion* superRegion) {
+ return getRegion<ObjCObjectRegion>(d, superRegion);
}
TypedViewRegion*
MemRegionManager::getTypedViewRegion(QualType t, const MemRegion* superRegion) {
- llvm::FoldingSetNodeID ID;
- TypedViewRegion::ProfileRegion(ID, t, superRegion);
-
- void* InsertPos;
- MemRegion* data = Regions.FindNodeOrInsertPos(ID, InsertPos);
- TypedViewRegion* R = cast_or_null<TypedViewRegion>(data);
-
- if (!R) {
- R = (TypedViewRegion*) A.Allocate<TypedViewRegion>();
- new (R) TypedViewRegion(t, superRegion);
- Regions.InsertNode(R, InsertPos);
- }
-
- return R;
+ return getRegion<TypedViewRegion>(t, superRegion);
}
AllocaRegion* MemRegionManager::getAllocaRegion(const Expr* E, unsigned cnt) {
OpenPOWER on IntegriCloud