[llvm] r228542 - DebugInfoPDB: Make the symbol base case hold an IPDBSession ref.

Zachary Turner zturner at google.com
Sun Feb 8 12:58:11 PST 2015


Author: zturner
Date: Sun Feb  8 14:58:09 2015
New Revision: 228542

URL: http://llvm.org/viewvc/llvm-project?rev=228542&view=rev
Log:
DebugInfoPDB: Make the symbol base case hold an IPDBSession ref.

Dumping a symbol often requires access to data that isn't inside
the symbol hierarchy, but which is only accessible through the
top-level session.  This patch is a pure interface change to give
symbols a reference to the session.

Modified:
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
    llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbol.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolBlock.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCustom.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolData.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolExe.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolLabel.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolThunk.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp
    llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp
    llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h Sun Feb  8 14:58:09 2015
@@ -36,11 +36,11 @@ class raw_ostream;
 /// https://msdn.microsoft.com/en-us/library/370hs6k4.aspx
 class PDBSymbol {
 protected:
-  PDBSymbol(std::unique_ptr<IPDBRawSymbol> Symbol);
+  PDBSymbol(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
 
 public:
   static std::unique_ptr<PDBSymbol>
-  create(std::unique_ptr<IPDBRawSymbol> Symbol);
+  create(IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol);
 
   virtual ~PDBSymbol();
 
@@ -62,6 +62,7 @@ public:
   std::unique_ptr<IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA) const;
 
 protected:
+  IPDBSession &Session;
   const std::unique_ptr<IPDBRawSymbol> RawSymbol;
 };
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h Sun Feb  8 14:58:09 2015
@@ -20,7 +20,8 @@ class raw_ostream;
 
 class PDBSymbolAnnotation : public PDBSymbol {
 public:
-  PDBSymbolAnnotation(std::unique_ptr<IPDBRawSymbol> AnnotationSymbol);
+  PDBSymbolAnnotation(IPDBSession &PDBSession,
+                      std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h Sun Feb  8 14:58:09 2015
@@ -20,7 +20,8 @@ class raw_ostream;
 
 class PDBSymbolBlock : public PDBSymbol {
 public:
-  PDBSymbolBlock(std::unique_ptr<IPDBRawSymbol> BlockSymbol);
+  PDBSymbolBlock(IPDBSession &PDBSession,
+                 std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h Sun Feb  8 14:58:09 2015
@@ -20,7 +20,8 @@ class raw_ostream;
 
 class PDBSymbolCompiland : public PDBSymbol {
 public:
-  PDBSymbolCompiland(std::unique_ptr<IPDBRawSymbol> CompilandSymbol);
+  PDBSymbolCompiland(IPDBSession &PDBSession,
+                     std::unique_ptr<IPDBRawSymbol> CompilandSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolCompilandDetails : public PDBSymbol {
 public:
-  PDBSymbolCompilandDetails(std::unique_ptr<IPDBRawSymbol> DetailsSymbol);
+  PDBSymbolCompilandDetails(IPDBSession &PDBSession,
+                            std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolCompilandEnv : public PDBSymbol {
 public:
-  PDBSymbolCompilandEnv(std::unique_ptr<IPDBRawSymbol> CompilandEnvSymbol);
+  PDBSymbolCompilandEnv(IPDBSession &PDBSession,
+                        std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h Sun Feb  8 14:58:09 2015
@@ -24,7 +24,8 @@ class raw_ostream;
 /// https://msdn.microsoft.com/en-us/library/d88sf09h.aspx
 class PDBSymbolCustom : public PDBSymbol {
 public:
-  PDBSymbolCustom(std::unique_ptr<IPDBRawSymbol> CustomSymbol);
+  PDBSymbolCustom(IPDBSession &PDBSession,
+                  std::unique_ptr<IPDBRawSymbol> CustomSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolData : public PDBSymbol {
 public:
-  PDBSymbolData(std::unique_ptr<IPDBRawSymbol> DataSymbol);
+  PDBSymbolData(IPDBSession &PDBSession,
+                std::unique_ptr<IPDBRawSymbol> DataSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h Sun Feb  8 14:58:09 2015
@@ -23,7 +23,8 @@ class raw_ostream;
 
 class PDBSymbolExe : public PDBSymbol {
 public:
-  PDBSymbolExe(std::unique_ptr<IPDBRawSymbol> ExeSymbol);
+  PDBSymbolExe(IPDBSession &PDBSession,
+               std::unique_ptr<IPDBRawSymbol> ExeSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolFunc : public PDBSymbol {
 public:
-  PDBSymbolFunc(std::unique_ptr<IPDBRawSymbol> FuncSymbol);
+  PDBSymbolFunc(IPDBSession &PDBSession,
+                std::unique_ptr<IPDBRawSymbol> FuncSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolFuncDebugEnd : public PDBSymbol {
 public:
-  PDBSymbolFuncDebugEnd(std::unique_ptr<IPDBRawSymbol> FuncDebugEndSymbol);
+  PDBSymbolFuncDebugEnd(IPDBSession &PDBSession,
+                        std::unique_ptr<IPDBRawSymbol> FuncDebugEndSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolFuncDebugStart : public PDBSymbol {
 public:
-  PDBSymbolFuncDebugStart(std::unique_ptr<IPDBRawSymbol> FuncDebugStartSymbol);
+  PDBSymbolFuncDebugStart(IPDBSession &PDBSession,
+                          std::unique_ptr<IPDBRawSymbol> FuncDebugStartSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolLabel : public PDBSymbol {
 public:
-  PDBSymbolLabel(std::unique_ptr<IPDBRawSymbol> LabelSymbol);
+  PDBSymbolLabel(IPDBSession &PDBSession,
+                 std::unique_ptr<IPDBRawSymbol> LabelSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolPublicSymbol : public PDBSymbol {
 public:
-  PDBSymbolPublicSymbol(std::unique_ptr<IPDBRawSymbol> PublicSymbol);
+  PDBSymbolPublicSymbol(IPDBSession &PDBSession,
+                        std::unique_ptr<IPDBRawSymbol> PublicSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h Sun Feb  8 14:58:09 2015
@@ -21,7 +21,8 @@ class raw_ostream;
 
 class PDBSymbolThunk : public PDBSymbol {
 public:
-  PDBSymbolThunk(std::unique_ptr<IPDBRawSymbol> ThunkSymbol);
+  PDBSymbolThunk(IPDBSession &PDBSession,
+                 std::unique_ptr<IPDBRawSymbol> ThunkSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeArray : public PDBSymbol {
 public:
-  PDBSymbolTypeArray(std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
+  PDBSymbolTypeArray(IPDBSession &PDBSession,
+                     std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeBaseClass : public PDBSymbol {
 public:
-  PDBSymbolTypeBaseClass(std::unique_ptr<IPDBRawSymbol> BaseClassTypeSymbol);
+  PDBSymbolTypeBaseClass(IPDBSession &PDBSession,
+                         std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeBuiltin : public PDBSymbol {
 public:
-  PDBSymbolTypeBuiltin(std::unique_ptr<IPDBRawSymbol> BuiltinTypeSymbol);
+  PDBSymbolTypeBuiltin(IPDBSession &PDBSession,
+                       std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeCustom : public PDBSymbol {
 public:
-  PDBSymbolTypeCustom(std::unique_ptr<IPDBRawSymbol> CustomTypeSymbol);
+  PDBSymbolTypeCustom(IPDBSession &PDBSession,
+                      std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeDimension : public PDBSymbol {
 public:
-  PDBSymbolTypeDimension(std::unique_ptr<IPDBRawSymbol> DimensionTypeSymbol);
+  PDBSymbolTypeDimension(IPDBSession &PDBSession,
+                         std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeEnum : public PDBSymbol {
 public:
-  PDBSymbolTypeEnum(std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);
+  PDBSymbolTypeEnum(IPDBSession &PDBSession,
+                    std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeFriend : public PDBSymbol {
 public:
-  PDBSymbolTypeFriend(std::unique_ptr<IPDBRawSymbol> FriendTypeSymbol);
+  PDBSymbolTypeFriend(IPDBSession &PDBSession,
+                      std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeFunctionArg : public PDBSymbol {
 public:
-  PDBSymbolTypeFunctionArg(std::unique_ptr<IPDBRawSymbol> FuncArgTypeSymbol);
+  PDBSymbolTypeFunctionArg(IPDBSession &PDBSession,
+                           std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeFunctionSig : public PDBSymbol {
 public:
-  PDBSymbolTypeFunctionSig(std::unique_ptr<IPDBRawSymbol> FuncSigTypeSymbol);
+  PDBSymbolTypeFunctionSig(IPDBSession &PDBSession,
+                           std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeManaged : public PDBSymbol {
 public:
-  PDBSymbolTypeManaged(std::unique_ptr<IPDBRawSymbol> ManagedTypeSymbol);
+  PDBSymbolTypeManaged(IPDBSession &PDBSession,
+                       std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypePointer : public PDBSymbol {
 public:
-  PDBSymbolTypePointer(std::unique_ptr<IPDBRawSymbol> PointerTypeSymbol);
+  PDBSymbolTypePointer(IPDBSession &PDBSession,
+                       std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeTypedef : public PDBSymbol {
 public:
-  PDBSymbolTypeTypedef(std::unique_ptr<IPDBRawSymbol> TypedefSymbol);
+  PDBSymbolTypeTypedef(IPDBSession &PDBSession,
+                       std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeUDT : public PDBSymbol {
 public:
-  PDBSymbolTypeUDT(std::unique_ptr<IPDBRawSymbol> UDTSymbol);
+  PDBSymbolTypeUDT(IPDBSession &PDBSession,
+                   std::unique_ptr<IPDBRawSymbol> UDTSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeVTable : public PDBSymbol {
 public:
-  PDBSymbolTypeVTable(std::unique_ptr<IPDBRawSymbol> VtblSymbol);
+  PDBSymbolTypeVTable(IPDBSession &PDBSession,
+                      std::unique_ptr<IPDBRawSymbol> VtblSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolTypeVTableShape : public PDBSymbol {
 public:
-  PDBSymbolTypeVTableShape(std::unique_ptr<IPDBRawSymbol> VtblShapeSymbol);
+  PDBSymbolTypeVTableShape(IPDBSession &PDBSession,
+                           std::unique_ptr<IPDBRawSymbol> VtblShapeSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolUnknown : public PDBSymbol {
 public:
-  PDBSymbolUnknown(std::unique_ptr<IPDBRawSymbol> UnknownSymbol);
+  PDBSymbolUnknown(IPDBSession &PDBSession,
+                   std::unique_ptr<IPDBRawSymbol> UnknownSymbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h Sun Feb  8 14:58:09 2015
@@ -19,7 +19,8 @@ class raw_ostream;
 
 class PDBSymbolUsingNamespace : public PDBSymbol {
 public:
-  PDBSymbolUsingNamespace(std::unique_ptr<IPDBRawSymbol> UsingSymbol);
+  PDBSymbolUsingNamespace(IPDBSession &PDBSession,
+                          std::unique_ptr<IPDBRawSymbol> Symbol);
 
   void dump(llvm::raw_ostream &OS) const override;
 

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbol.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbol.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbol.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbol.cpp Sun Feb  8 14:58:09 2015
@@ -48,17 +48,19 @@
 
 using namespace llvm;
 
-PDBSymbol::PDBSymbol(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : RawSymbol(std::move(Symbol)) {}
+PDBSymbol::PDBSymbol(IPDBSession &PDBSession,
+                     std::unique_ptr<IPDBRawSymbol> Symbol)
+    : Session(PDBSession), RawSymbol(std::move(Symbol)) {}
 
 PDBSymbol::~PDBSymbol() {}
 
 #define FACTORY_SYMTAG_CASE(Tag, Type)                                         \
   case PDB_SymType::Tag:                                                       \
-    return std::unique_ptr<PDBSymbol>(new Type(std::move(Symbol)));
+    return std::unique_ptr<PDBSymbol>(new Type(PDBSession, std::move(Symbol)));
 
 std::unique_ptr<PDBSymbol>
-PDBSymbol::create(std::unique_ptr<IPDBRawSymbol> Symbol) {
+PDBSymbol::create(IPDBSession &PDBSession,
+                  std::unique_ptr<IPDBRawSymbol> Symbol) {
   switch (Symbol->getSymTag()) {
     FACTORY_SYMTAG_CASE(Exe, PDBSymbolExe)
     FACTORY_SYMTAG_CASE(Compiland, PDBSymbolCompiland)
@@ -91,7 +93,8 @@ PDBSymbol::create(std::unique_ptr<IPDBRa
     FACTORY_SYMTAG_CASE(ManagedType, PDBSymbolTypeManaged)
     FACTORY_SYMTAG_CASE(Dimension, PDBSymbolTypeDimension)
   default:
-    return std::unique_ptr<PDBSymbol>(new PDBSymbolUnknown(std::move(Symbol)));
+    return std::unique_ptr<PDBSymbol>(
+        new PDBSymbolUnknown(PDBSession, std::move(Symbol)));
   }
 }
 

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolAnnotation::PDBSymbolAnnotation(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolAnnotation::PDBSymbolAnnotation(IPDBSession &PDBSession,
+                                         std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolAnnotation::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolBlock.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolBlock.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolBlock.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolBlock.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolBlock::PDBSymbolBlock(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolBlock::PDBSymbolBlock(IPDBSession &PDBSession,
+                               std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolBlock::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp Sun Feb  8 14:58:09 2015
@@ -17,8 +17,9 @@
 
 using namespace llvm;
 
-PDBSymbolCompiland::PDBSymbolCompiland(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolCompiland::PDBSymbolCompiland(IPDBSession &PDBSession,
+                                       std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolCompiland::dump(llvm::raw_ostream &OS) const {
 }

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolCompilandDetails::PDBSymbolCompilandDetails(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolCompilandDetails::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp Sun Feb  8 14:58:09 2015
@@ -16,8 +16,8 @@
 using namespace llvm;
 
 PDBSymbolCompilandEnv::PDBSymbolCompilandEnv(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 std::string PDBSymbolCompilandEnv::getValue() const {
   // call RawSymbol->getValue() and convert the result to an std::string.

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCustom.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCustom.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCustom.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolCustom.cpp Sun Feb  8 14:58:09 2015
@@ -15,8 +15,9 @@
 
 using namespace llvm;
 
-PDBSymbolCustom::PDBSymbolCustom(std::unique_ptr<IPDBRawSymbol> CustomSymbol)
-    : PDBSymbol(std::move(CustomSymbol)) {}
+PDBSymbolCustom::PDBSymbolCustom(IPDBSession &PDBSession,
+                                 std::unique_ptr<IPDBRawSymbol> CustomSymbol)
+    : PDBSymbol(PDBSession, std::move(CustomSymbol)) {}
 
 void PDBSymbolCustom::getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) {
   RawSymbol->getDataBytes(bytes);

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolData.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolData.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolData.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolData.cpp Sun Feb  8 14:58:09 2015
@@ -7,11 +7,13 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include <utility>
 #include "llvm/DebugInfo/PDB/PDBSymbolData.h"
 
 using namespace llvm;
 
-PDBSymbolData::PDBSymbolData(std::unique_ptr<IPDBRawSymbol> DataSymbol)
-    : PDBSymbol(std::move(DataSymbol)) {}
+PDBSymbolData::PDBSymbolData(IPDBSession &PDBSession,
+                             std::unique_ptr<IPDBRawSymbol> DataSymbol)
+    : PDBSymbol(PDBSession, std::move(DataSymbol)) {}
 
 void PDBSymbolData::dump(llvm::raw_ostream &OS) const {}
\ No newline at end of file

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolExe.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolExe.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolExe.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolExe.cpp Sun Feb  8 14:58:09 2015
@@ -17,8 +17,9 @@
 
 using namespace llvm;
 
-PDBSymbolExe::PDBSymbolExe(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolExe::PDBSymbolExe(IPDBSession &PDBSession,
+                           std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolExe::dump(llvm::raw_ostream &OS) const {
 }

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFunc.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFunc.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFunc.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolFunc::PDBSymbolFunc(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolFunc::PDBSymbolFunc(IPDBSession &PDBSession,
+                             std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolFunc::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolFuncDebugEnd::PDBSymbolFuncDebugEnd(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolFuncDebugEnd::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolFuncDebugStart::PDBSymbolFuncDebugStart(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolFuncDebugStart::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolLabel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolLabel.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolLabel.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolLabel.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolLabel::PDBSymbolLabel(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolLabel::PDBSymbolLabel(IPDBSession &PDBSession,
+                               std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolLabel::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolPublicSymbol::PDBSymbolPublicSymbol(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolPublicSymbol::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolThunk.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolThunk.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolThunk.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolThunk.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolThunk::PDBSymbolThunk(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolThunk::PDBSymbolThunk(IPDBSession &PDBSession,
+                               std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolThunk::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolTypeArray::PDBSymbolTypeArray(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolTypeArray::PDBSymbolTypeArray(IPDBSession &PDBSession,
+                                       std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeArray::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolTypeBaseClass::PDBSymbolTypeBaseClass(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(Session, std::move(Symbol)) {}
 
 void PDBSymbolTypeBaseClass::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolTypeBuiltin::PDBSymbolTypeBuiltin(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeBuiltin::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolTypeCustom::PDBSymbolTypeCustom(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolTypeCustom::PDBSymbolTypeCustom(IPDBSession &PDBSession,
+                                         std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeCustom::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp Sun Feb  8 14:58:09 2015
@@ -16,7 +16,7 @@
 using namespace llvm;
 
 PDBSymbolTypeDimension::PDBSymbolTypeDimension(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeDimension::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolTypeEnum::PDBSymbolTypeEnum(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolTypeEnum::PDBSymbolTypeEnum(IPDBSession &PDBSession,
+                                     std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeEnum::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolTypeFriend::PDBSymbolTypeFriend(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolTypeFriend::PDBSymbolTypeFriend(IPDBSession &PDBSession,
+                                         std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeFriend::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolTypeFunctionArg::PDBSymbolTypeFunctionArg(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeFunctionArg::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolTypeFunctionSig::PDBSymbolTypeFunctionSig(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeFunctionSig::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolTypeManaged::PDBSymbolTypeManaged(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeManaged::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp Sun Feb  8 14:58:09 2015
@@ -16,7 +16,7 @@
 using namespace llvm;
 
 PDBSymbolTypePointer::PDBSymbolTypePointer(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypePointer::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp Sun Feb  8 14:58:09 2015
@@ -16,7 +16,7 @@
 using namespace llvm;
 
 PDBSymbolTypeTypedef::PDBSymbolTypeTypedef(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeTypedef::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolTypeUDT::PDBSymbolTypeUDT(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolTypeUDT::PDBSymbolTypeUDT(IPDBSession &PDBSession,
+                                   std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeUDT::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolTypeVTable::PDBSymbolTypeVTable(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolTypeVTable::PDBSymbolTypeVTable(IPDBSession &PDBSession,
+                                         std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeVTable::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolTypeVTableShape::PDBSymbolTypeVTableShape(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolTypeVTableShape::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp Sun Feb  8 14:58:09 2015
@@ -14,7 +14,8 @@
 
 using namespace llvm;
 
-PDBSymbolUnknown::PDBSymbolUnknown(std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+PDBSymbolUnknown::PDBSymbolUnknown(IPDBSession &PDBSession,
+                                   std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolUnknown::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp Sun Feb  8 14:58:09 2015
@@ -15,7 +15,7 @@
 using namespace llvm;
 
 PDBSymbolUsingNamespace::PDBSymbolUsingNamespace(
-    std::unique_ptr<IPDBRawSymbol> Symbol)
-    : PDBSymbol(std::move(Symbol)) {}
+    IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
+    : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
 void PDBSymbolUsingNamespace::dump(llvm::raw_ostream &OS) const {}

Modified: llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp?rev=228542&r1=228541&r2=228542&view=diff
==============================================================================
--- llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp (original)
+++ llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp Sun Feb  8 14:58:09 2015
@@ -12,6 +12,9 @@
 
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
+#include "llvm/DebugInfo/PDB/IPDBSession.h"
+#include "llvm/DebugInfo/PDB/IPDBSourceFile.h"
+
 #include "llvm/DebugInfo/PDB/PDBSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolAnnotation.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolBlock.h"
@@ -66,6 +69,21 @@ namespace {
     return ReturnType();                                                       \
   }
 
+class MockSession : public IPDBSession {
+  uint64_t getLoadAddress() const override { return 0; }
+  void setLoadAddress(uint64_t Address) override {}
+  std::unique_ptr<PDBSymbolExe> getGlobalScope() const override {
+    return nullptr;
+  }
+  std::unique_ptr<PDBSymbol> getSymbolById() const override { return nullptr; }
+  std::unique_ptr<IPDBSourceFile> getSourceFileById() const override {
+    return nullptr;
+  }
+  std::unique_ptr<IPDBEnumDataStreams> getDebugStreams() const override {
+    return nullptr;
+  }
+};
+
 class MockRawSymbol : public IPDBRawSymbol {
 public:
   MockRawSymbol(PDB_SymType SymType) : Type(SymType) {}
@@ -257,6 +275,8 @@ public:
   std::unordered_map<PDB_SymType, std::unique_ptr<PDBSymbol>> SymbolMap;
 
   void SetUp() override {
+    Session.reset(new MockSession());
+
     InsertItemWithTag(PDB_SymType::None);
     InsertItemWithTag(PDB_SymType::Exe);
     InsertItemWithTag(PDB_SymType::Compiland);
@@ -291,14 +311,6 @@ public:
     InsertItemWithTag(PDB_SymType::Max);
   }
 
-private:
-  void InsertItemWithTag(PDB_SymType Tag) {
-    auto RawSymbol = std::unique_ptr<IPDBRawSymbol>(new MockRawSymbol(Tag));
-    auto Symbol = PDBSymbol::create(std::move(RawSymbol));
-    SymbolMap.insert(std::make_pair(Tag, std::move(Symbol)));
-  }
-
-public:
   template <class ExpectedType> void VerifyDyncast(PDB_SymType Tag) {
     for (auto item = SymbolMap.begin(); item != SymbolMap.end(); ++item) {
       EXPECT_EQ(item->first == Tag, llvm::isa<ExpectedType>(*item->second));
@@ -314,6 +326,15 @@ public:
       EXPECT_EQ(should_match, llvm::isa<PDBSymbolUnknown>(*item->second));
     }
   }
+
+private:
+  std::unique_ptr<IPDBSession> Session;
+
+  void InsertItemWithTag(PDB_SymType Tag) {
+    auto RawSymbol = std::unique_ptr<IPDBRawSymbol>(new MockRawSymbol(Tag));
+    auto Symbol = PDBSymbol::create(*Session, std::move(RawSymbol));
+    SymbolMap.insert(std::make_pair(Tag, std::move(Symbol)));
+  }
 };
 
 TEST_F(PDBApiTest, Dyncast) {





More information about the llvm-commits mailing list