From e17da65c5773e0285b22e33d1431b13fbcd8942c Mon Sep 17 00:00:00 2001 From: Zhongxing Xu Date: Thu, 13 Jan 2011 12:46:31 +0000 Subject: [PATCH] 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 --- lib/StaticAnalyzer/MemRegion.cpp | 1 + test/Analysis/base-init.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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(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; -- 2.40.0