From 07b2cfcdb817cc0790420f159a313d61e7241cb9 Mon Sep 17 00:00:00 2001
From: rdivacky <rdivacky@FreeBSD.org>
Date: Fri, 2 Apr 2010 08:55:10 +0000
Subject: Update clang to r100181.

---
 lib/CodeGen/CGTemporaries.cpp | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

(limited to 'lib/CodeGen/CGTemporaries.cpp')

diff --git a/lib/CodeGen/CGTemporaries.cpp b/lib/CodeGen/CGTemporaries.cpp
index bed8439..6d38ab9 100644
--- a/lib/CodeGen/CGTemporaries.cpp
+++ b/lib/CodeGen/CGTemporaries.cpp
@@ -127,15 +127,14 @@ CodeGenFunction::EmitCXXExprWithTemporaries(const CXXExprWithTemporaries *E,
   size_t CleanupStackDepth = CleanupEntries.size();
   (void) CleanupStackDepth;
 
-  unsigned OldNumLiveTemporaries = LiveTemporaries.size();
-
-  RValue RV = EmitAnyExpr(E->getSubExpr(), AggLoc, IsAggLocVolatile,
-                          /*IgnoreResult=*/false, IsInitializer);
-
-  // Pop temporaries.
-  while (LiveTemporaries.size() > OldNumLiveTemporaries)
-    PopCXXTemporary();
+  RValue RV;
+  
+  {
+    CXXTemporariesCleanupScope Scope(*this);
 
+    RV = EmitAnyExpr(E->getSubExpr(), AggLoc, IsAggLocVolatile,
+                     /*IgnoreResult=*/false, IsInitializer);
+  }
   assert(CleanupEntries.size() == CleanupStackDepth &&
          "Cleanup size mismatch!");
 
-- 
cgit v1.1