diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2011-01-13 12:46:31 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2011-01-13 12:46:31 +0000 |
commit | e17da65c5773e0285b22e33d1431b13fbcd8942c (patch) | |
tree | d848eb704a8997d98c3f3e18fd0a157231618b96 | |
parent | d074441e027471a914cbb909a7aad1d43224950f (diff) |
CXXBaseObjectRegion is like FieldRegion. Need to blast through it when
getting the base region. This makes the RemoveDeadBindings() correct.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123375 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/StaticAnalyzer/MemRegion.cpp | 1 | ||||
-rw-r--r-- | test/Analysis/base-init.cpp | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/StaticAnalyzer/MemRegion.cpp b/lib/StaticAnalyzer/MemRegion.cpp index e465224f42..d3d72b51a7 100644 --- a/lib/StaticAnalyzer/MemRegion.cpp +++ b/lib/StaticAnalyzer/MemRegion.cpp @@ -770,6 +770,7 @@ const MemRegion *MemRegion::getBaseRegion() const { case MemRegion::ElementRegionKind: case MemRegion::FieldRegionKind: case MemRegion::ObjCIvarRegionKind: + case MemRegion::CXXBaseObjectRegionKind: R = cast<SubRegion>(R)->getSuperRegion(); continue; default: diff --git a/test/Analysis/base-init.cpp b/test/Analysis/base-init.cpp index e82f443ced..800763b25b 100644 --- a/test/Analysis/base-init.cpp +++ b/test/Analysis/base-init.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store region -analyzer-inline-call -cfg-add-initializers -verify -analyzer-no-purge-dead %s +// RUN: %clang_cc1 -analyze -analyzer-check-objc-mem -analyzer-store region -analyzer-inline-call -cfg-add-initializers -verify %s class A { int x; |