From ea360a3b1af5ff19a9e3eb7dfcca59bae690566f Mon Sep 17 00:00:00 2001 From: Zhongxing Xu Date: Fri, 1 Oct 2010 02:47:11 +0000 Subject: The old logic would add non-struct and non C++ struct variables to the local scope. Now we only add C++ struct with non-trivial destructor variables to the local scope. llvm-svn: 115269 --- clang/lib/Analysis/CFG.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'clang') diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index a60c3a6b01c..4cf0264003b 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/lib/Analysis/CFG.cpp @@ -566,13 +566,12 @@ LocalScope* CFGBuilder::addLocalScopeForVarDecl(VarDecl* VD, // Check if type is a C++ class with non-trivial destructor. if (const RecordType* RT = QT.getTypePtr()->getAs()) if (const CXXRecordDecl* CD = dyn_cast(RT->getDecl())) - if (CD->hasTrivialDestructor()) - return Scope; - - // Add the variable to scope - Scope = createOrReuseLocalScope(Scope); - Scope->addVar(VD); - ScopePos = Scope->begin(); + if (!CD->hasTrivialDestructor()) { + // Add the variable to scope + Scope = createOrReuseLocalScope(Scope); + Scope->addVar(VD); + ScopePos = Scope->begin(); + } return Scope; } -- cgit v1.2.3