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
diff --git a/lib/StaticAnalyzer/MemRegion.cpp b/lib/StaticAnalyzer/MemRegion.cpp
index e465224..d3d72b5 100644
--- a/lib/StaticAnalyzer/MemRegion.cpp
+++ b/lib/StaticAnalyzer/MemRegion.cpp
@@ -770,6 +770,7 @@
       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 e82f443..800763b 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;