[llvm] r228542 - DebugInfoPDB: Make the symbol base case hold an IPDBSession ref.
Zachary Turner
zturner at google.com
Mon Feb 9 21:31:43 PST 2015
sorry, didn't see this message. Will talk to you about this in person.
On Sun Feb 08 2015 at 3:26:59 PM David Blaikie <dblaikie at gmail.com> wrote:
> On Sun, Feb 8, 2015 at 2:46 PM, Craig Topper <craig.topper at gmail.com>
> wrote:
>
>> This commit is throwing about 8 warnings like this
>>
>> lib/DebugInfo/PDB/PDBSymbolThunk.cpp:19:17: warning: base class
>> 'llvm::PDBSymbol' is uninitialized when used here to access
>> 'llvm::PDBSymbol::Session' [-Wuninitialized]
>>
>> : PDBSymbol(Session, std::move(Symbol)) {}
>>
>>
>> I suspect Session there should be PDBSession which is passed to the
>> constructor whereas Session is a member of PDBSymbol.
>>
> Yep, fixed in that way in r228554. Though Zach - it might be nice to
> generate these using a .def file, similar to/something like what I was
> suggesting in the code review.
>
>
>>
>> On Sun, Feb 8, 2015 at 12:58 PM, Zachary Turner <zturner at google.com>
>> wrote:
>>
>>> 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) {
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>
>>
>>
>> --
>> ~Craig
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150210/c9b5510b/attachment.html>
More information about the llvm-commits
mailing list