diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2018-01-17 20:27:26 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2018-01-17 20:27:26 +0000 |
commit | cf9ff89663d7fac3759eb2b0bb9030a7bf97e47f (patch) | |
tree | c5817362aac9b1edadb89c599b14d7e36ace5da9 /clang/lib/StaticAnalyzer/Core/MemRegion.cpp | |
parent | 1963d71cb8b8b4e66d71d83cde3d23f059386bcc (diff) | |
download | bcm5719-llvm-cf9ff89663d7fac3759eb2b0bb9030a7bf97e47f.tar.gz bcm5719-llvm-cf9ff89663d7fac3759eb2b0bb9030a7bf97e47f.zip |
[analyzer] Make isSubRegionOf reflexive
All usages of isSubRegionOf separately check for reflexive case, and in
any case, set theory tells us that each set is a subset of itself.
Differential Revision: https://reviews.llvm.org/D42140
llvm-svn: 322752
Diffstat (limited to 'clang/lib/StaticAnalyzer/Core/MemRegion.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Core/MemRegion.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/MemRegion.cpp b/clang/lib/StaticAnalyzer/Core/MemRegion.cpp index cb8ba6de362..aa54544fa7d 100644 --- a/clang/lib/StaticAnalyzer/Core/MemRegion.cpp +++ b/clang/lib/StaticAnalyzer/Core/MemRegion.cpp @@ -103,15 +103,15 @@ MemRegionManager::~MemRegionManager() { //===----------------------------------------------------------------------===// bool SubRegion::isSubRegionOf(const MemRegion* R) const { - const MemRegion* r = getSuperRegion(); - while (r != nullptr) { + const MemRegion* r = this; + do { if (r == R) return true; if (const SubRegion* sr = dyn_cast<SubRegion>(r)) r = sr->getSuperRegion(); else break; - } + } while (r != nullptr); return false; } |