Store more information about live temporaries. No functionality change for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72793 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index b7894a4..97ca81b 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -239,7 +239,30 @@
   /// 'this' declaration.
   ImplicitParamDecl *CXXThisDecl;
   
-  llvm::SmallVector<const CXXTemporary*, 4> LiveTemporaries;
+  /// CXXLiveTemporaryInfo - Holds information about a live C++ temporary.
+  struct CXXLiveTemporaryInfo {
+    /// Temporary - The live temporary.
+    const CXXTemporary *Temporary;
+    
+    /// ThisPtr - The pointer to the temporary.
+    llvm::Value *ThisPtr;
+    
+    /// DtorBlock - The destructor block.
+    llvm::BasicBlock *DtorBlock;
+    
+    /// CondPtr - If this is a conditional temporary, this is the pointer to
+    /// the condition variable that states whether the destructor should be
+    /// called or not.
+    llvm::Value *CondPtr;
+    
+    CXXLiveTemporaryInfo(const CXXTemporary *temporary,
+                         llvm::Value *thisptr, llvm::Value *condptr,
+                         llvm::BasicBlock *dtorblock) 
+      : Temporary(temporary), ThisPtr(thisptr), DtorBlock(dtorblock), 
+      CondPtr(condptr) { }
+  };
+  
+  llvm::SmallVector<CXXLiveTemporaryInfo, 4> LiveTemporaries;
   
 public:
   CodeGenFunction(CodeGenModule &cgm);