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
diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp
index a60c3a6..4cf0264 100644
--- a/clang/lib/Analysis/CFG.cpp
+++ b/clang/lib/Analysis/CFG.cpp
@@ -566,13 +566,12 @@
   // Check if type is a C++ class with non-trivial destructor.
   if (const RecordType* RT = QT.getTypePtr()->getAs<RecordType>())
     if (const CXXRecordDecl* CD = dyn_cast<CXXRecordDecl>(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;
 }