aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h4
-rw-r--r--lib/StaticAnalyzer/Core/MemRegion.cpp18
2 files changed, 3 insertions, 19 deletions
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h b/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
index e54b3f039d..8484aefdc3 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
@@ -141,7 +141,7 @@ public:
const MemRegion *getBaseRegion() const;
/// Check if the region is a subregion of the given region.
- bool isSubRegionOf(const MemRegion *PR) const;
+ virtual bool isSubRegionOf(const MemRegion *R) const;
const MemRegion *StripCasts(bool StripBaseCasts = true) const;
@@ -419,7 +419,7 @@ public:
MemRegionManager* getMemRegionManager() const;
- bool isSubRegionOf(const MemRegion* R) const;
+ virtual bool isSubRegionOf(const MemRegion* R) const;
static bool classof(const MemRegion* R) {
return R->getKind() > END_MEMSPACES;
diff --git a/lib/StaticAnalyzer/Core/MemRegion.cpp b/lib/StaticAnalyzer/Core/MemRegion.cpp
index 6d6bb20818..8c3c1250e6 100644
--- a/lib/StaticAnalyzer/Core/MemRegion.cpp
+++ b/lib/StaticAnalyzer/Core/MemRegion.cpp
@@ -990,23 +990,7 @@ const MemRegion *MemRegion::getBaseRegion() const {
return R;
}
-bool MemRegion::isSubRegionOf(const MemRegion *PR) const {
- const MemRegion *R = this;
- while (true) {
- switch (R->getKind()) {
- case MemRegion::ElementRegionKind:
- case MemRegion::FieldRegionKind:
- case MemRegion::ObjCIvarRegionKind:
- case MemRegion::CXXBaseObjectRegionKind:
- R = cast<SubRegion>(R)->getSuperRegion();
- if (R == PR)
- return true;
- continue;
- default:
- break;
- }
- break;
- }
+bool MemRegion::isSubRegionOf(const MemRegion *R) const {
return false;
}