<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 11, 2015, at 9:21 AM, Zachary Turner <<a href="mailto:zturner@google.com" class="">zturner@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">This should have been fixed yesterday, are you at tot?<br class=""></div></blockquote><div><br class=""></div><div>Oh right. Sorry for the noise :-)</div><div><br class=""></div><div>-- adrian</div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote">On Wed, Feb 11, 2015 at 9:20 AM Adrian Prantl <<a href="mailto:aprantl@apple.com" class="">aprantl@apple.com</a>> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi, I’m getting these warnings now from -Wcovered-switch-default:<br class="">
<br class="">
[5/53] Building CXX object lib/DebugInfo/PDB/CMakeFiles/<u class=""></u>LLVMDebugInfoPDB.dir/<u class=""></u>PDBExtras.cpp.o<br class="">
../lib/DebugInfo/PDB/<u class=""></u>PDBExtras.cpp:110:3: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]<br class="">
  default:<br class="">
  ^<br class="">
../lib/DebugInfo/PDB/<u class=""></u>PDBExtras.cpp:121:3: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]<br class="">
  default:<br class="">
  ^<br class="">
../lib/DebugInfo/PDB/<u class=""></u>PDBExtras.cpp:146:3: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]<br class="">
  default:<br class="">
  ^<br class="">
<br class="">
-- adrian<br class="">
<br class="">
<br class="">
> On Feb 10, 2015, at 2:43 PM, Zachary Turner <<a href="mailto:zturner@google.com" target="_blank" class="">zturner@google.com</a>> wrote:<br class="">
><br class="">
> Author: zturner<br class="">
> Date: Tue Feb 10 16:43:25 2015<br class="">
> New Revision: 228755<br class="">
><br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=228755&view=rev" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project?rev=228755&view=rev</a><br class="">
> Log:<br class="">
> Rewrite llvm-pdbdump in terms of LLVMDebugInfoPDB.<br class="">
><br class="">
> This makes llvm-pdbdump available on all platforms, although it<br class="">
> will currently fail to create a dumper if there is no PDB reader<br class="">
> implementation for the current platform.<br class="">
><br class="">
> It implements dumping of compilands and children, which is less<br class="">
> information than was previously available, but it has to be<br class="">
> rewritten from scratch using the new set of interfaces, so the<br class="">
> rest of the functionality will be added back in subsequent commits.<br class="">
><br class="">
> Added:<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBExtras.h<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>IPDBSourceFile.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBExtras.cpp<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>Makefile<br class="">
> Removed:<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>COMExtras.h<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>DIAExtras.cpp<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>DIAExtras.h<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>DIASymbol.cpp<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>DIASymbol.h<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>llvm-pdbdump.h<br class="">
> Modified:<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/DIASession.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBRawSymbol.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSession.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSourceFile.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbol.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolAnnotation.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolBlock.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompiland.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandDetails.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandEnv.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolCustom.<u class=""></u>h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolData.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolExe.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolFunc.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugEnd.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugStart.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolLabel.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolPublicSymbol.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolThunk.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeArray.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBaseClass.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBuiltin.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeCustom.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeDimension.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeEnum.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFriend.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionArg.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionSig.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeManaged.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypePointer.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeTypedef.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeUDT.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTable.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTableShape.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUnknown.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUsingNamespace.h<br class="">
>    llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBTypes.h<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>CMakeLists.txt<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIARawSymbol.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIASession.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBInterfaceAnchors.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbol.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolAnnotation.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolBlock.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolCompiland.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandDetails.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandEnv.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolCustom.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolData.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolExe.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolFunc.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugEnd.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugStart.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolLabel.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolPublicSymbol.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolThunk.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeArray.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBaseClass.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBuiltin.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeCustom.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeDimension.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeEnum.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFriend.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionArg.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionSig.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeManaged.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypePointer.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeTypedef.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeUDT.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTable.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTableShape.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolUnknown.cpp<br class="">
>    llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBSymbolUsingNamespace.cpp<br class="">
>    llvm/trunk/tools/CMakeLists.<u class=""></u>txt<br class="">
>    llvm/trunk/tools/Makefile<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>CMakeLists.txt<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>LLVMBuild.txt<br class="">
>    llvm/trunk/tools/llvm-pdbdump/<u class=""></u>llvm-pdbdump.cpp<br class="">
>    llvm/trunk/unittests/<u class=""></u>DebugInfo/PDB/PDBApiTest.cpp<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.h?rev=228755&r1=<u class=""></u>228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -19,8 +19,12 @@ class DIARawSymbol : public IPDBRawSymbo<br class="">
> public:<br class="">
>   DIARawSymbol(const DIASession &PDBSession, CComPtr<IDiaSymbol> DiaSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
> +  CComPtr<IDiaSymbol> getDiaSymbol() const { return Symbol; }<br class="">
> +<br class="">
> +  std::unique_ptr<<u class=""></u>IPDBEnumSymbols><br class="">
> +  DIARawSymbol::findChildren(<u class=""></u>PDB_SymType Type) const override;<br class="">
>   std::unique_ptr<<u class=""></u>IPDBEnumSymbols><br class="">
>   findChildren(PDB_SymType Type, StringRef Name,<br class="">
>                PDB_NameSearchFlags Flags) const override;<br class="">
> @@ -54,7 +58,7 @@ public:<br class="">
>   uint32_t getLiveRangeStartAddressOffset<u class=""></u>() const override;<br class="">
>   uint32_t getLiveRangeStartAddressSectio<u class=""></u>n() const override;<br class="">
>   uint32_t getLiveRangeStartRelativeVirtu<u class=""></u>alAddress() const override;<br class="">
> -  uint32_t getLocalBasePointerRegisterId(<u class=""></u>) const override;<br class="">
> +  PDB_RegisterId getLocalBasePointerRegisterId(<u class=""></u>) const override;<br class="">
>   uint32_t getLowerBoundId() const override;<br class="">
>   uint32_t getMemorySpaceKind() const override;<br class="">
>   std::string getName() const override;<br class="">
> @@ -69,7 +73,7 @@ public:<br class="">
>   uint32_t getOffsetInUdt() const override;<br class="">
>   PDB_Cpu getPlatform() const override;<br class="">
>   uint32_t getRank() const override;<br class="">
> -  uint32_t getRegisterId() const override;<br class="">
> +  PDB_RegisterId getRegisterId() const override;<br class="">
>   uint32_t getRegisterType() const override;<br class="">
>   uint32_t getRelativeVirtualAddress() const override;<br class="">
>   uint32_t getSamplerSlot() const override;<br class="">
> @@ -129,6 +133,7 @@ public:<br class="">
>   bool hasInlAsm() const override;<br class="">
>   bool hasInlineAttribute() const override;<br class="">
>   bool hasInterruptReturn() const override;<br class="">
> +  bool hasFramePointer() const override;<br class="">
>   bool hasLongJump() const override;<br class="">
>   bool hasManagedCode() const override;<br class="">
>   bool hasNestedTypes() const override;<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/DIASession.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIASession.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/DIA/<u class=""></u>DIASession.h?rev=228755&r1=<u class=""></u>228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/DIASession.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/DIA/DIASession.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -25,6 +25,10 @@ public:<br class="">
>   void setLoadAddress(uint64_t Address) override;<br class="">
>   std::unique_ptr<PDBSymbolExe> getGlobalScope() const override;<br class="">
>   std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const override;<br class="">
> +<br class="">
> +  std::unique_ptr<<u class=""></u>IPDBEnumSourceFiles> getAllSourceFiles() const override;<br class="">
> +  std::unique_ptr<<u class=""></u>IPDBEnumSourceFiles> getSourceFilesForCompiland(<br class="">
> +      const PDBSymbolCompiland &Compiland) const override;<br class="">
>   std::unique_ptr<<u class=""></u>IPDBSourceFile><br class="">
>   getSourceFileById(uint32_t FileId) const override;<br class="">
><br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBRawSymbol.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>IPDBRawSymbol.h?rev=228755&r1=<u class=""></u>228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBRawSymbol.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBRawSymbol.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -29,7 +29,10 @@ class IPDBRawSymbol {<br class="">
> public:<br class="">
>   virtual ~IPDBRawSymbol();<br class="">
><br class="">
> -  virtual void dump(llvm::raw_ostream &OS) const = 0;<br class="">
> +  virtual void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const = 0;<br class="">
> +<br class="">
> +  virtual std::unique_ptr<<u class=""></u>IPDBEnumSymbols><br class="">
> +  findChildren(PDB_SymType Type) const = 0;<br class="">
><br class="">
>   virtual std::unique_ptr<<u class=""></u>IPDBEnumSymbols><br class="">
>   findChildren(PDB_SymType Type, StringRef Name,<br class="">
> @@ -64,7 +67,7 @@ public:<br class="">
>   virtual uint32_t getLiveRangeStartAddressOffset<u class=""></u>() const = 0;<br class="">
>   virtual uint32_t getLiveRangeStartAddressSectio<u class=""></u>n() const = 0;<br class="">
>   virtual uint32_t getLiveRangeStartRelativeVirtu<u class=""></u>alAddress() const = 0;<br class="">
> -  virtual uint32_t getLocalBasePointerRegisterId(<u class=""></u>) const = 0;<br class="">
> +  virtual PDB_RegisterId getLocalBasePointerRegisterId(<u class=""></u>) const = 0;<br class="">
>   virtual uint32_t getLowerBoundId() const = 0;<br class="">
>   virtual uint32_t getMemorySpaceKind() const = 0;<br class="">
>   virtual std::string getName() const = 0;<br class="">
> @@ -79,7 +82,7 @@ public:<br class="">
>   virtual uint32_t getOffsetInUdt() const = 0;<br class="">
>   virtual PDB_Cpu getPlatform() const = 0;<br class="">
>   virtual uint32_t getRank() const = 0;<br class="">
> -  virtual uint32_t getRegisterId() const = 0;<br class="">
> +  virtual PDB_RegisterId getRegisterId() const = 0;<br class="">
>   virtual uint32_t getRegisterType() const = 0;<br class="">
>   virtual uint32_t getRelativeVirtualAddress() const = 0;<br class="">
>   virtual uint32_t getSamplerSlot() const = 0;<br class="">
> @@ -136,6 +139,7 @@ public:<br class="">
>   virtual bool hasDebugInfo() const = 0;<br class="">
>   virtual bool hasEH() const = 0;<br class="">
>   virtual bool hasEHa() const = 0;<br class="">
> +  virtual bool hasFramePointer() const = 0;<br class="">
>   virtual bool hasInlAsm() const = 0;<br class="">
>   virtual bool hasInlineAttribute() const = 0;<br class="">
>   virtual bool hasInterruptReturn() const = 0;<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSession.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSession.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>IPDBSession.h?rev=228755&r1=<u class=""></u>228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSession.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSession.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -16,6 +16,7 @@<br class="">
><br class="">
> namespace llvm {<br class="">
><br class="">
> +class PDBSymbolCompiland;<br class="">
> class PDBSymbolExe;<br class="">
><br class="">
> /// IPDBSession defines an interface used to provide a context for querying<br class="">
> @@ -28,6 +29,10 @@ public:<br class="">
>   virtual void setLoadAddress(uint64_t Address) = 0;<br class="">
>   virtual std::unique_ptr<PDBSymbolExe> getGlobalScope() const = 0;<br class="">
>   virtual std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const = 0;<br class="">
> +<br class="">
> +  virtual std::unique_ptr<<u class=""></u>IPDBEnumSourceFiles> getAllSourceFiles() const = 0;<br class="">
> +  virtual std::unique_ptr<<u class=""></u>IPDBEnumSourceFiles><br class="">
> +  getSourceFilesForCompiland(<u class=""></u>const PDBSymbolCompiland &Compiland) const = 0;<br class="">
>   virtual std::unique_ptr<<u class=""></u>IPDBSourceFile><br class="">
>   getSourceFileById(uint32_t FileId) const = 0;<br class="">
><br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSourceFile.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/IPDBSourceFile.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>IPDBSourceFile.h?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSourceFile.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/IPDBSourceFile.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -17,12 +17,16 @@<br class="">
><br class="">
> namespace llvm {<br class="">
><br class="">
> +class raw_ostream;<br class="">
> +<br class="">
> /// IPDBSourceFile defines an interface used to represent source files whose<br class="">
> /// information are stored in the PDB.<br class="">
> class IPDBSourceFile {<br class="">
> public:<br class="">
>   virtual ~IPDBSourceFile();<br class="">
><br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const;<br class="">
> +<br class="">
>   virtual std::string getFileName() const = 0;<br class="">
>   virtual uint32_t getUniqueId() const = 0;<br class="">
>   virtual std::string getChecksum() const = 0;<br class="">
><br class="">
> Added: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBExtras.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBExtras.h?rev=228755&view=auto" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/PDBExtras.<u class=""></u>h?rev=228755&view=auto</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBExtras.h (added)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBExtras.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -0,0 +1,39 @@<br class="">
> +//===- PDBExtras.h - helper functions and classes for PDBs -------*- C++-*-===//<br class="">
> +//<br class="">
> +//                     The LLVM Compiler Infrastructure<br class="">
> +//<br class="">
> +// This file is distributed under the University of Illinois Open Source<br class="">
> +// License. See LICENSE.TXT for details.<br class="">
> +//<br class="">
> +//===------------------------<u class=""></u>------------------------------<u class=""></u>----------------===//<br class="">
> +<br class="">
> +#ifndef LLVM_DEBUGINFO_PDB_PDBEXTRAS_H<br class="">
> +#define LLVM_DEBUGINFO_PDB_PDBEXTRAS_H<br class="">
> +<br class="">
> +#include <unordered_map><br class="">
> +<br class="">
> +#include "PDBTypes.h"<br class="">
> +<br class="">
> +#include "llvm/Support/raw_ostream.h"<br class="">
> +<br class="">
> +namespace llvm {<br class="">
> +typedef std::unordered_map<PDB_<u class=""></u>SymType, int> TagStats;<br class="">
> +<br class="">
> +struct stream_indent {<br class="">
> +  stream_indent(int IndentWidth) : Width(IndentWidth) {}<br class="">
> +  int Width;<br class="">
> +};<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const stream_indent &Indent);<br class="">
> +<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const PDB_RegisterId &Reg);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const PDB_LocType &Loc);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const PDB_ThunkOrdinal &Thunk);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const PDB_Checksum &Checksum);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const PDB_Lang &Lang);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const PDB_SymType &Tag);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const PDB_UniqueId &Id);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const VersionInfo &Version);<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const TagStats &Stats);<br class="">
> +}<br class="">
> +<br class="">
> +#endif<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbol.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbol.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/PDBSymbol.<u class=""></u>h?rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbol.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbol.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -11,11 +11,13 @@<br class="">
> #define LLVM_DEBUGINFO_PDB_IPDBSYMBOL_<u class=""></u>H<br class="">
><br class="">
> #include <memory><br class="">
> +#include <unordered_map><br class="">
><br class="">
> #include "llvm/ADT/StringRef.h"<br class="">
> #include "llvm/Support/Casting.h"<br class="">
><br class="">
> #include "IPDBRawSymbol.h"<br class="">
> +#include "PDBExtras.h"<br class="">
> #include "PDBTypes.h"<br class="">
><br class="">
> #define FORWARD_SYMBOL_METHOD(<u class=""></u>MethodName)                                      \<br class="">
> @@ -48,10 +50,12 @@ public:<br class="">
>   /// call dump() on the underlying RawSymbol, which allows us to discover<br class="">
>   /// unknown properties, but individual implementations of PDBSymbol may<br class="">
>   /// override the behavior to only dump known fields.<br class="">
> -  virtual void dump(llvm::raw_ostream &OS) const;<br class="">
> +  virtual void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const = 0;<br class="">
> +  void defaultDump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const;<br class="">
><br class="">
>   PDB_SymType getSymTag() const;<br class="">
><br class="">
> +  std::unique_ptr<<u class=""></u>IPDBEnumSymbols> findChildren(PDB_SymType Type) const;<br class="">
>   std::unique_ptr<<u class=""></u>IPDBEnumSymbols><br class="">
>   findChildren(PDB_SymType Type, StringRef Name,<br class="">
>                PDB_NameSearchFlags Flags) const;<br class="">
> @@ -61,7 +65,12 @@ public:<br class="">
>                                                      uint32_t RVA) const;<br class="">
>   std::unique_ptr<<u class=""></u>IPDBEnumSymbols> findInlineFramesByRVA(uint32_t RVA) const;<br class="">
><br class="">
> +  const IPDBRawSymbol &getRawSymbol() const { return *RawSymbol; }<br class="">
> +  IPDBRawSymbol &getRawSymbol() { return *RawSymbol; }<br class="">
> +<br class="">
> protected:<br class="">
> +  std::unique_ptr<<u class=""></u>IPDBEnumSymbols> getChildStats(TagStats &Stats) const;<br class="">
> +<br class="">
>   const IPDBSession &Session;<br class="">
>   const std::unique_ptr<IPDBRawSymbol> RawSymbol;<br class="">
> };<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolAnnotation.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolAnnotation.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolAnnotation.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolAnnotation.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -23,7 +23,7 @@ public:<br class="">
>   PDBSymbolAnnotation(const IPDBSession &PDBSession,<br class="">
>                       std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressSection)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolBlock.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolBlock.h?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolBlock.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolBlock.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -23,7 +23,7 @@ public:<br class="">
>   PDBSymbolBlock(const IPDBSession &PDBSession,<br class="">
>                  std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressSection)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompiland.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolCompiland.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompiland.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompiland.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -23,7 +23,7 @@ public:<br class="">
>   PDBSymbolCompiland(const IPDBSession &PDBSession,<br class="">
>                      std::unique_ptr<IPDBRawSymbol> CompilandSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isEditAndContinueEnabled)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLexicalParentId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandDetails.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandDetails.h?<u class=""></u>rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandDetails.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandDetails.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolCompilandDetails(<u class=""></u>const IPDBSession &PDBSession,<br class="">
>                             std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   void getFrontEndVersion(VersionInfo &Version) const {<br class="">
>     RawSymbol->getFrontEndVersion(<u class=""></u>Version);<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandEnv.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandEnv.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandEnv.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolCompilandEnv.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolCompilandEnv(const IPDBSession &PDBSession,<br class="">
>                         std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLexicalParentId)<br class="">
>   FORWARD_SYMBOL_METHOD(getName)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolCustom.<u class=""></u>h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolCustom.h?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolCustom.<u class=""></u>h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolCustom.<u class=""></u>h Tue Feb 10 16:43:25 2015<br class="">
> @@ -27,7 +27,7 @@ public:<br class="">
>   PDBSymbolCustom(const IPDBSession &PDBSession,<br class="">
>                   std::unique_ptr<IPDBRawSymbol> CustomSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   void getDataBytes(llvm::<u class=""></u>SmallVector<uint8_t, 32> &bytes);<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getSymIndexId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolData.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolData.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolData.h?rev=228755&r1=<u class=""></u>228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolData.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolData.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolData(const IPDBSession &PDBSession,<br class="">
>                 std::unique_ptr<IPDBRawSymbol> DataSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAccess)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolExe.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolExe.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolExe.h?rev=228755&r1=<u class=""></u>228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolExe.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolExe.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -24,7 +24,7 @@ public:<br class="">
>   PDBSymbolExe(const IPDBSession &PDBSession,<br class="">
>                std::unique_ptr<IPDBRawSymbol> ExeSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(getAge)<br class="">
>   FORWARD_SYMBOL_METHOD(getGuid)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolFunc.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolFunc.h?rev=228755&r1=<u class=""></u>228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolFunc.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolFunc.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolFunc(const IPDBSession &PDBSession,<br class="">
>                 std::unique_ptr<IPDBRawSymbol> FuncSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAccess)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
> @@ -46,8 +46,10 @@ public:<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isStatic)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLength)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLexicalParentId)<br class="">
> +  FORWARD_SYMBOL_METHOD(<u class=""></u>getLocalBasePointerRegisterId)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLocationType)<br class="">
>   FORWARD_SYMBOL_METHOD(getName)<br class="">
> +  FORWARD_SYMBOL_METHOD(<u class=""></u>hasFramePointer)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>hasNoInlineAttribute)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>hasNoReturnAttribute)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isUnreached)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugEnd.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugEnd.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugEnd.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugEnd.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolFuncDebugEnd(const IPDBSession &PDBSession,<br class="">
>                         std::unique_ptr<IPDBRawSymbol> FuncDebugEndSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressSection)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugStart.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugStart.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugStart.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolFuncDebugStart.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolFuncDebugStart(const IPDBSession &PDBSession,<br class="">
>                           std::unique_ptr<IPDBRawSymbol> FuncDebugStartSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressSection)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolLabel.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolLabel.h?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolLabel.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolLabel.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolLabel(const IPDBSession &PDBSession,<br class="">
>                  std::unique_ptr<IPDBRawSymbol> LabelSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressSection)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolPublicSymbol.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolPublicSymbol.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolPublicSymbol.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolPublicSymbol.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolPublicSymbol(const IPDBSession &PDBSession,<br class="">
>                         std::unique_ptr<IPDBRawSymbol> PublicSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressSection)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolThunk.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolThunk.h?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolThunk.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBSymbolThunk.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -24,7 +24,7 @@ public:<br class="">
>   PDBSymbolThunk(const IPDBSession &PDBSession,<br class="">
>                  std::unique_ptr<IPDBRawSymbol> ThunkSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAccess)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAddressOffset)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeArray.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeArray.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeArray.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeArray.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeArray(const IPDBSession &PDBSession,<br class="">
>                      std::unique_ptr<IPDBRawSymbol> ArrayTypeSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getArrayIndexTypeId)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isConstType)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBaseClass.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBaseClass.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBaseClass.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBaseClass.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeBaseClass(const IPDBSession &PDBSession,<br class="">
>                          std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getAccess)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBuiltin.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBuiltin.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBuiltin.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeBuiltin.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeBuiltin(const IPDBSession &PDBSession,<br class="">
>                        std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getBuiltinType)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isConstType)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeCustom.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeCustom.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeCustom.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeCustom.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeCustom(const IPDBSession &PDBSession,<br class="">
>                       std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getOemId)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getOemSymbolId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeDimension.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeDimension.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeDimension.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeDimension.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeDimension(const IPDBSession &PDBSession,<br class="">
>                          std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLowerBoundId)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getUpperBoundId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeEnum.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeEnum.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeEnum.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeEnum.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeEnum(const IPDBSession &PDBSession,<br class="">
>                     std::unique_ptr<IPDBRawSymbol> EnumTypeSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getBuiltinType)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFriend.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFriend.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFriend.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFriend.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeFriend(const IPDBSession &PDBSession,<br class="">
>                       std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
>   FORWARD_SYMBOL_METHOD(getName)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionArg.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionArg.h?<u class=""></u>rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionArg.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionArg.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeFunctionArg(const IPDBSession &PDBSession,<br class="">
>                            std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLexicalParentId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionSig.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionSig.h?<u class=""></u>rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionSig.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeFunctionSig.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeFunctionSig(const IPDBSession &PDBSession,<br class="">
>                            std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getCallingConvention)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeManaged.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeManaged.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeManaged.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeManaged.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeManaged(const IPDBSession &PDBSession,<br class="">
>                        std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(getName)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getSymIndexId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypePointer.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypePointer.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypePointer.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypePointer.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypePointer(const IPDBSession &PDBSession,<br class="">
>                        std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isConstType)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLength)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeTypedef.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeTypedef.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeTypedef.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeTypedef.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeTypedef(const IPDBSession &PDBSession,<br class="">
>                        std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getBuiltinType)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeUDT.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeUDT.h?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeUDT.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeUDT.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeUDT(const IPDBSession &PDBSession,<br class="">
>                    std::unique_ptr<IPDBRawSymbol> UDTSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>hasConstructor)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTable.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTable.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTable.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTable.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeVTable(const IPDBSession &PDBSession,<br class="">
>                       std::unique_ptr<IPDBRawSymbol> VtblSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getClassParentId)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isConstType)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTableShape.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTableShape.h?<u class=""></u>rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTableShape.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolTypeVTableShape.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolTypeVTableShape(const IPDBSession &PDBSession,<br class="">
>                            std::unique_ptr<IPDBRawSymbol> VtblShapeSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>isConstType)<br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getCount)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUnknown.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolUnknown.h?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUnknown.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUnknown.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolUnknown(const IPDBSession &PDBSession,<br class="">
>                    std::unique_ptr<IPDBRawSymbol> UnknownSymbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   static bool classof(const PDBSymbol *S) {<br class="">
>     return (S->getSymTag() == PDB_SymType::None ||<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUsingNamespace.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolUsingNamespace.h?rev=<u class=""></u>228755&r1=228754&r2=228755&<u class=""></u>view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUsingNamespace.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/<u class=""></u>PDBSymbolUsingNamespace.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -22,7 +22,7 @@ public:<br class="">
>   PDBSymbolUsingNamespace(const IPDBSession &PDBSession,<br class="">
>                           std::unique_ptr<IPDBRawSymbol> Symbol);<br class="">
><br class="">
> -  void dump(llvm::raw_ostream &OS) const override;<br class="">
> +  void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;<br class="">
><br class="">
>   FORWARD_SYMBOL_METHOD(<u class=""></u>getLexicalParentId)<br class="">
>   FORWARD_SYMBOL_METHOD(getName)<br class="">
><br class="">
> Modified: llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBTypes.h<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/PDBTypes.h?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/DebugInfo/PDB/PDBTypes.h?<u class=""></u>rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBTypes.h (original)<br class="">
> +++ llvm/trunk/include/llvm/<u class=""></u>DebugInfo/PDB/PDBTypes.h Tue Feb 10 16:43:25 2015<br class="">
> @@ -11,6 +11,7 @@<br class="">
> #define LLVM_DEBUGINFO_PDB_PDBTYPES_H<br class="">
><br class="">
> #include <stdint.h><br class="">
> +#include <functional><br class="">
> #include "llvm/Config/llvm-config.h"<br class="">
><br class="">
> namespace llvm {<br class="">
> @@ -68,6 +69,12 @@ enum class PDB_ReaderType {<br class="">
>   DIA = 0,<br class="">
> };<br class="">
><br class="">
> +enum class PDB_DumpLevel {<br class="">
> +  Compact,<br class="">
> +  Normal,<br class="">
> +  Detailed,<br class="">
> +};<br class="">
> +<br class="">
> /// Defines a 128-bit unique identifier.  This maps to a GUID on Windows, but<br class="">
> /// is abstracted here for the purposes of non-Windows platforms that don't have<br class="">
> /// the GUID structure defined.<br class="">
> @@ -365,6 +372,58 @@ enum class PDB_BuiltinType {<br class="">
>   HResult = 31<br class="">
> };<br class="">
><br class="">
> +enum class PDB_RegisterId {<br class="">
> +  Unknown = 0,<br class="">
> +  VFrame = 30006,<br class="">
> +  AL = 1,<br class="">
> +  CL = 2,<br class="">
> +  DL = 3,<br class="">
> +  BL = 4,<br class="">
> +  AH = 5,<br class="">
> +  CH = 6,<br class="">
> +  DH = 7,<br class="">
> +  BH = 8,<br class="">
> +  AX = 9,<br class="">
> +  CX = 10,<br class="">
> +  DX = 11,<br class="">
> +  BX = 12,<br class="">
> +  SP = 13,<br class="">
> +  BP = 14,<br class="">
> +  SI = 15,<br class="">
> +  DI = 16,<br class="">
> +  EAX = 17,<br class="">
> +  ECX = 18,<br class="">
> +  EDX = 19,<br class="">
> +  EBX = 20,<br class="">
> +  ESP = 21,<br class="">
> +  EBP = 22,<br class="">
> +  ESI = 23,<br class="">
> +  EDI = 24,<br class="">
> +  ES = 25,<br class="">
> +  CS = 26,<br class="">
> +  SS = 27,<br class="">
> +  DS = 28,<br class="">
> +  FS = 29,<br class="">
> +  GS = 30,<br class="">
> +  IP = 31,<br class="">
> +  RAX = 328,<br class="">
> +  RBX = 329,<br class="">
> +  RCX = 330,<br class="">
> +  RDX = 331,<br class="">
> +  RSI = 332,<br class="">
> +  RDI = 333,<br class="">
> +  RBP = 334,<br class="">
> +  RSP = 335,<br class="">
> +  R8 = 336,<br class="">
> +  R9 = 337,<br class="">
> +  R10 = 338,<br class="">
> +  R11 = 339,<br class="">
> +  R12 = 340,<br class="">
> +  R13 = 341,<br class="">
> +  R14 = 342,<br class="">
> +  R15 = 343,<br class="">
> +};<br class="">
> +<br class="">
> enum class PDB_MemberAccess { Private = 1, Protected = 2, Public = 3 };<br class="">
><br class="">
> struct VersionInfo {<br class="">
> @@ -376,4 +435,15 @@ struct VersionInfo {<br class="">
><br class="">
> } // namespace llvm<br class="">
><br class="">
> +namespace std {<br class="">
> +template <> struct hash<llvm::PDB_SymType> {<br class="">
> +  typedef llvm::PDB_SymType argument_type;<br class="">
> +  typedef std::size_t result_type;<br class="">
> +<br class="">
> +  result_type operator()(const argument_type &Arg) const {<br class="">
> +    return std::hash<int>()(static_cast<<u class=""></u>int>(Arg));<br class="">
> +  }<br class="">
> +};<br class="">
> +}<br class="">
> +<br class="">
> #endif<br class="">
><br class="">
> Modified: llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>CMakeLists.txt<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/CMakeLists.txt?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/lib/<u class=""></u>DebugInfo/PDB/CMakeLists.txt?<u class=""></u>rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>CMakeLists.txt (original)<br class="">
> +++ llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>CMakeLists.txt Tue Feb 10 16:43:25 2015<br class="">
> @@ -30,7 +30,9 @@ endif()<br class="">
> list(APPEND LIBPDB_ADDITIONAL_HEADER_DIRS "../../../include/llvm/<u class=""></u>DebugInfo/PDB")<br class="">
><br class="">
> add_llvm_library(<u class=""></u>LLVMDebugInfoPDB<br class="">
> +  IPDBSourceFile.cpp<br class="">
>   PDB.cpp<br class="">
> +  PDBExtras.cpp<br class="">
>   PDBInterfaceAnchors.cpp<br class="">
>   PDBSymbol.cpp<br class="">
>   PDBSymbolAnnotation.cpp<br class="">
><br class="">
> Modified: llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIARawSymbol.cpp<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/lib/<u class=""></u>DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.cpp?rev=228755&<u class=""></u>r1=228754&r2=228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIARawSymbol.cpp (original)<br class="">
> +++ llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIARawSymbol.cpp Tue Feb 10 16:43:25 2015<br class="">
> @@ -7,6 +7,7 @@<br class="">
> //<br class="">
> //===-------------------------<u class=""></u>------------------------------<u class=""></u>---------------===//<br class="">
><br class="">
> +#include "llvm/DebugInfo/PDB/PDBExtras.<u class=""></u>h"<br class="">
> #include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIAEnumSymbols.h"<br class="">
> #include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.h"<br class="">
> #include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIASession.h"<br class="">
> @@ -54,13 +55,228 @@ PrivateGetDIAValue(IDiaSymbol *Symbol,<br class="">
>   ::memcpy(&IdResult, &Result, sizeof(GUID));<br class="">
>   return IdResult;<br class="">
> }<br class="">
> +<br class="">
> +template <typename ArgType><br class="">
> +void DumpDIAValue(llvm::raw_ostream &OS, int Indent, StringRef Name,<br class="">
> +                  IDiaSymbol *Symbol,<br class="">
> +                  HRESULT (__stdcall IDiaSymbol::*Method)(ArgType *)) {<br class="">
> +  ArgType Value;<br class="">
> +  if (S_OK == (Symbol->*Method)(&Value)) {<br class="">
> +    OS.indent(Indent);<br class="">
> +    OS << Name << ": " << Value << "\n";<br class="">
> +  }<br class="">
> +}<br class="">
> +<br class="">
> +void DumpDIAValue(llvm::raw_ostream &OS, int Indent, StringRef Name,<br class="">
> +                  IDiaSymbol *Symbol,<br class="">
> +                  HRESULT (__stdcall IDiaSymbol::*Method)(BSTR *)) {<br class="">
> +  BSTR Value = nullptr;<br class="">
> +  if (S_OK != (Symbol->*Method)(&Value))<br class="">
> +    return;<br class="">
> +  const char *Bytes = reinterpret_cast<const char *>(Value);<br class="">
> +  ArrayRef<char> ByteArray(Bytes, ::SysStringByteLen(Value));<br class="">
> +  std::string Result;<br class="">
> +  if (llvm::<u class=""></u>convertUTF16ToUTF8String(<u class=""></u>ByteArray, Result)) {<br class="">
> +    OS.indent(Indent);<br class="">
> +    OS << Name << ": " << Result << "\n";<br class="">
> +  }<br class="">
> +  ::SysFreeString(Value);<br class="">
> +}<br class="">
> +}<br class="">
> +<br class="">
> +namespace llvm {<br class="">
> +raw_ostream &operator<<(raw_ostream &OS, const GUID &Guid) {<br class="">
> +  const PDB_UniqueId *Id = reinterpret_cast<const PDB_UniqueId *>(&Guid);<br class="">
> +  OS << *Id;<br class="">
> +  return OS;<br class="">
> +}<br class="">
> }<br class="">
><br class="">
> DIARawSymbol::DIARawSymbol(<u class=""></u>const DIASession &PDBSession,<br class="">
>                            CComPtr<IDiaSymbol> DiaSymbol)<br class="">
>     : Session(PDBSession), Symbol(DiaSymbol) {}<br class="">
><br class="">
> -void DIARawSymbol::dump(llvm::raw_<u class=""></u>ostream &OS) const {}<br class="">
> +#define RAW_METHOD_DUMP(Stream, Method)                                        \<br class="">
> +  DumpDIAValue(Stream, Indent, StringRef(#Method), Symbol, &IDiaSymbol::Method);<br class="">
> +<br class="">
> +void DIARawSymbol::dump(raw_ostream &OS, int Indent,<br class="">
> +                        PDB_DumpLevel Level) const {<br class="">
> +  RAW_METHOD_DUMP(OS, get_access)<br class="">
> +  RAW_METHOD_DUMP(OS, get_addressOffset)<br class="">
> +  RAW_METHOD_DUMP(OS, get_addressSection)<br class="">
> +  RAW_METHOD_DUMP(OS, get_age)<br class="">
> +  RAW_METHOD_DUMP(OS, get_arrayIndexTypeId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_backEndMajor)<br class="">
> +  RAW_METHOD_DUMP(OS, get_backEndMinor)<br class="">
> +  RAW_METHOD_DUMP(OS, get_backEndBuild)<br class="">
> +  RAW_METHOD_DUMP(OS, get_backEndQFE)<br class="">
> +  RAW_METHOD_DUMP(OS, get_baseDataOffset)<br class="">
> +  RAW_METHOD_DUMP(OS, get_baseDataSlot)<br class="">
> +  RAW_METHOD_DUMP(OS, get_baseSymbolId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_builtInKind)<br class="">
> +  RAW_METHOD_DUMP(OS, get_bitPosition)<br class="">
> +  RAW_METHOD_DUMP(OS, get_callingConvention)<br class="">
> +  RAW_METHOD_DUMP(OS, get_classParentId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_compilerName)<br class="">
> +  RAW_METHOD_DUMP(OS, get_count)<br class="">
> +  RAW_METHOD_DUMP(OS, get_countLiveRanges)<br class="">
> +  RAW_METHOD_DUMP(OS, get_frontEndMajor)<br class="">
> +  RAW_METHOD_DUMP(OS, get_frontEndMinor)<br class="">
> +  RAW_METHOD_DUMP(OS, get_frontEndBuild)<br class="">
> +  RAW_METHOD_DUMP(OS, get_frontEndQFE)<br class="">
> +  RAW_METHOD_DUMP(OS, get_count)<br class="">
> +  RAW_METHOD_DUMP(OS, get_lexicalParentId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_libraryName)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>liveRangeStartAddressOffset)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>liveRangeStartAddressSection)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>liveRangeStartRelativeVirtualA<u class=""></u>ddress)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>localBasePointerRegisterId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_lowerBoundId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_memorySpaceKind)<br class="">
> +  RAW_METHOD_DUMP(OS, get_name)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>numberOfAcceleratorPointerTags<u class=""></u>)<br class="">
> +  RAW_METHOD_DUMP(OS, get_numberOfColumns)<br class="">
> +  RAW_METHOD_DUMP(OS, get_numberOfModifiers)<br class="">
> +  RAW_METHOD_DUMP(OS, get_numberOfRegisterIndices)<br class="">
> +  RAW_METHOD_DUMP(OS, get_numberOfRows)<br class="">
> +  RAW_METHOD_DUMP(OS, get_objectFileName)<br class="">
> +  RAW_METHOD_DUMP(OS, get_oemId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_oemSymbolId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_offsetInUdt)<br class="">
> +  RAW_METHOD_DUMP(OS, get_platform)<br class="">
> +  RAW_METHOD_DUMP(OS, get_rank)<br class="">
> +  RAW_METHOD_DUMP(OS, get_registerId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_registerType)<br class="">
> +  RAW_METHOD_DUMP(OS, get_relativeVirtualAddress)<br class="">
> +  RAW_METHOD_DUMP(OS, get_samplerSlot)<br class="">
> +  RAW_METHOD_DUMP(OS, get_signature)<br class="">
> +  RAW_METHOD_DUMP(OS, get_sizeInUdt)<br class="">
> +  RAW_METHOD_DUMP(OS, get_slot)<br class="">
> +  RAW_METHOD_DUMP(OS, get_sourceFileName)<br class="">
> +  RAW_METHOD_DUMP(OS, get_stride)<br class="">
> +  RAW_METHOD_DUMP(OS, get_subTypeId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_symbolsFileName)<br class="">
> +  RAW_METHOD_DUMP(OS, get_symIndexId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_targetOffset)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>targetRelativeVirtualAddress)<br class="">
> +  RAW_METHOD_DUMP(OS, get_targetVirtualAddress)<br class="">
> +  RAW_METHOD_DUMP(OS, get_targetSection)<br class="">
> +  RAW_METHOD_DUMP(OS, get_textureSlot)<br class="">
> +  RAW_METHOD_DUMP(OS, get_timeStamp)<br class="">
> +  RAW_METHOD_DUMP(OS, get_token)<br class="">
> +  RAW_METHOD_DUMP(OS, get_typeId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_uavSlot)<br class="">
> +  RAW_METHOD_DUMP(OS, get_undecoratedName)<br class="">
> +  RAW_METHOD_DUMP(OS, get_unmodifiedTypeId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_upperBoundId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_virtualBaseDispIndex)<br class="">
> +  RAW_METHOD_DUMP(OS, get_virtualBaseOffset)<br class="">
> +  RAW_METHOD_DUMP(OS, get_virtualTableShapeId)<br class="">
> +  RAW_METHOD_DUMP(OS, get_dataKind)<br class="">
> +  RAW_METHOD_DUMP(OS, get_symTag)<br class="">
> +  RAW_METHOD_DUMP(OS, get_guid)<br class="">
> +  RAW_METHOD_DUMP(OS, get_offset)<br class="">
> +  RAW_METHOD_DUMP(OS, get_thisAdjust)<br class="">
> +  RAW_METHOD_DUMP(OS, get_virtualBasePointerOffset)<br class="">
> +  RAW_METHOD_DUMP(OS, get_locationType)<br class="">
> +  RAW_METHOD_DUMP(OS, get_machineType)<br class="">
> +  RAW_METHOD_DUMP(OS, get_thunkOrdinal)<br class="">
> +  RAW_METHOD_DUMP(OS, get_length)<br class="">
> +  RAW_METHOD_DUMP(OS, get_liveRangeLength)<br class="">
> +  RAW_METHOD_DUMP(OS, get_virtualAddress)<br class="">
> +  RAW_METHOD_DUMP(OS, get_udtKind)<br class="">
> +  RAW_METHOD_DUMP(OS, get_constructor)<br class="">
> +  RAW_METHOD_DUMP(OS, get_customCallingConvention)<br class="">
> +  RAW_METHOD_DUMP(OS, get_farReturn)<br class="">
> +  RAW_METHOD_DUMP(OS, get_code)<br class="">
> +  RAW_METHOD_DUMP(OS, get_compilerGenerated)<br class="">
> +  RAW_METHOD_DUMP(OS, get_constType)<br class="">
> +  RAW_METHOD_DUMP(OS, get_editAndContinueEnabled)<br class="">
> +  RAW_METHOD_DUMP(OS, get_function)<br class="">
> +  RAW_METHOD_DUMP(OS, get_stride)<br class="">
> +  RAW_METHOD_DUMP(OS, get_noStackOrdering)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasAlloca)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasAssignmentOperator)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isCTypes)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasCastOperator)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasDebugInfo)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasEH)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasEHa)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasInlAsm)<br class="">
> +  RAW_METHOD_DUMP(OS, get_framePointerPresent)<br class="">
> +  RAW_METHOD_DUMP(OS, get_inlSpec)<br class="">
> +  RAW_METHOD_DUMP(OS, get_interruptReturn)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasLongJump)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasManagedCode)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasNestedTypes)<br class="">
> +  RAW_METHOD_DUMP(OS, get_noInline)<br class="">
> +  RAW_METHOD_DUMP(OS, get_noReturn)<br class="">
> +  RAW_METHOD_DUMP(OS, get_optimizedCodeDebugInfo)<br class="">
> +  RAW_METHOD_DUMP(OS, get_overloadedOperator)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasSEH)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasSecurityChecks)<br class="">
> +  RAW_METHOD_DUMP(OS, get_hasSetJump)<br class="">
> +  RAW_METHOD_DUMP(OS, get_strictGSCheck)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>isAcceleratorGroupSharedLocal)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>isAcceleratorPointerTagLiveRan<u class=""></u>ge)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isAcceleratorStubFunction)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isAggregated)<br class="">
> +  RAW_METHOD_DUMP(OS, get_intro)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isCVTCIL)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isConstructorVirtualBase)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isCxxReturnUdt)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isDataAligned)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isHLSLData)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isHotpatchable)<br class="">
> +  RAW_METHOD_DUMP(OS, get_indirectVirtualBaseClass)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isInterfaceUdt)<br class="">
> +  RAW_METHOD_DUMP(OS, get_intrinsic)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isLTCG)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>isLocationControlFlowDependent<u class=""></u>)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isMSILNetmodule)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isMatrixRowMajor)<br class="">
> +  RAW_METHOD_DUMP(OS, get_managed)<br class="">
> +  RAW_METHOD_DUMP(OS, get_msil)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isMultipleInheritance)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isNaked)<br class="">
> +  RAW_METHOD_DUMP(OS, get_nested)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isOptimizedAway)<br class="">
> +  RAW_METHOD_DUMP(OS, get_packed)<br class="">
> +  RAW_METHOD_DUMP(OS, get_<u class=""></u>isPointerBasedOnSymbolValue)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isPointerToDataMember)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isPointerToMemberFunction)<br class="">
> +  RAW_METHOD_DUMP(OS, get_pure)<br class="">
> +  RAW_METHOD_DUMP(OS, get_RValueReference)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isRefUdt)<br class="">
> +  RAW_METHOD_DUMP(OS, get_reference)<br class="">
> +  RAW_METHOD_DUMP(OS, get_restrictedType)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isReturnValue)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isSafeBuffers)<br class="">
> +  RAW_METHOD_DUMP(OS, get_scoped)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isSdl)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isSingleInheritance)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isSplitted)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isStatic)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isStripped)<br class="">
> +  RAW_METHOD_DUMP(OS, get_unalignedType)<br class="">
> +  RAW_METHOD_DUMP(OS, get_notReached)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isValueUdt)<br class="">
> +  RAW_METHOD_DUMP(OS, get_virtual)<br class="">
> +  RAW_METHOD_DUMP(OS, get_virtualBaseClass)<br class="">
> +  RAW_METHOD_DUMP(OS, get_isVirtualInheritance)<br class="">
> +  RAW_METHOD_DUMP(OS, get_volatileType)<br class="">
> +}<br class="">
> +<br class="">
> +std::unique_ptr<<u class=""></u>IPDBEnumSymbols><br class="">
> +DIARawSymbol::findChildren(<u class=""></u>PDB_SymType Type) const {<br class="">
> +  enum SymTagEnum EnumVal = static_cast<enum SymTagEnum>(Type);<br class="">
> +<br class="">
> +  CComPtr<IDiaEnumSymbols> DiaEnumerator;<br class="">
> +  if (S_OK != Symbol->findChildren(EnumVal, nullptr, nsNone, &DiaEnumerator))<br class="">
> +    return nullptr;<br class="">
> +<br class="">
> +  return std::make_unique<<u class=""></u>DIAEnumSymbols>(Session, DiaEnumerator);<br class="">
> +}<br class="">
><br class="">
> std::unique_ptr<<u class=""></u>IPDBEnumSymbols><br class="">
> DIARawSymbol::findChildren(<u class=""></u>PDB_SymType Type, StringRef Name,<br class="">
> @@ -198,7 +414,7 @@ void DIARawSymbol::<u class=""></u>getFrontEndVersion(Ve<br class="">
> }<br class="">
><br class="">
> PDB_Lang DIARawSymbol::getLanguage() const {<br class="">
> -  return PrivateGetDIAValue<DWORD, PDB_Lang>(Symbol, &IDiaSymbol::get_count);<br class="">
> +  return PrivateGetDIAValue<DWORD, PDB_Lang>(Symbol, &IDiaSymbol::get_language);<br class="">
> }<br class="">
><br class="">
> uint32_t DIARawSymbol::<u class=""></u>getLexicalParentId() const {<br class="">
> @@ -224,9 +440,9 @@ uint32_t DIARawSymbol::<u class=""></u>getLiveRangeStart<br class="">
>       Symbol, &IDiaSymbol::get_<u class=""></u>liveRangeStartRelativeVirtualA<u class=""></u>ddress);<br class="">
> }<br class="">
><br class="">
> -uint32_t DIARawSymbol::<u class=""></u>getLocalBasePointerRegisterId(<u class=""></u>) const {<br class="">
> -  return PrivateGetDIAValue(Symbol,<br class="">
> -                            &IDiaSymbol::get_<u class=""></u>localBasePointerRegisterId);<br class="">
> +PDB_RegisterId DIARawSymbol::<u class=""></u>getLocalBasePointerRegisterId(<u class=""></u>) const {<br class="">
> +  return PrivateGetDIAValue<DWORD, PDB_RegisterId>(<br class="">
> +      Symbol, &IDiaSymbol::get_<u class=""></u>localBasePointerRegisterId);<br class="">
> }<br class="">
><br class="">
> uint32_t DIARawSymbol::getLowerBoundId(<u class=""></u>) const {<br class="">
> @@ -286,8 +502,9 @@ uint32_t DIARawSymbol::getRank() const {<br class="">
>   return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_rank);<br class="">
> }<br class="">
><br class="">
> -uint32_t DIARawSymbol::getRegisterId() const {<br class="">
> -  return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_registerId);<br class="">
> +PDB_RegisterId DIARawSymbol::getRegisterId() const {<br class="">
> +  return PrivateGetDIAValue<DWORD, PDB_RegisterId>(Symbol,<br class="">
> +                                                   &IDiaSymbol::get_registerId);<br class="">
> }<br class="">
><br class="">
> uint32_t DIARawSymbol::getRegisterType(<u class=""></u>) const {<br class="">
> @@ -486,7 +703,7 @@ bool DIARawSymbol::isFunction() const {<br class="">
> }<br class="">
><br class="">
> bool DIARawSymbol::getAddressTaken(<u class=""></u>) const {<br class="">
> -  return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_stride);<br class="">
> +  return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_addressTaken)<u class=""></u>;<br class="">
> }<br class="">
><br class="">
> bool DIARawSymbol::<u class=""></u>getNoStackOrdering() const {<br class="">
> @@ -533,6 +750,10 @@ bool DIARawSymbol::<u class=""></u>hasInterruptReturn()<br class="">
>   return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_<u class=""></u>interruptReturn);<br class="">
> }<br class="">
><br class="">
> +bool DIARawSymbol::hasFramePointer(<u class=""></u>) const {<br class="">
> +  return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_<u class=""></u>framePointerPresent);<br class="">
> +}<br class="">
> +<br class="">
> bool DIARawSymbol::hasLongJump() const {<br class="">
>   return PrivateGetDIAValue(Symbol, &IDiaSymbol::get_hasLongJump);<br class="">
> }<br class="">
><br class="">
> Modified: llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIASession.cpp<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp?rev=228755&r1=228754&r2=228755&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/lib/<u class=""></u>DebugInfo/PDB/DIA/DIASession.<u class=""></u>cpp?rev=228755&r1=228754&r2=<u class=""></u>228755&view=diff</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIASession.cpp (original)<br class="">
> +++ llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>DIA/DIASession.cpp Tue Feb 10 16:43:25 2015<br class="">
> @@ -7,11 +7,14 @@<br class="">
> //<br class="">
> //===-------------------------<u class=""></u>------------------------------<u class=""></u>---------------===//<br class="">
><br class="">
> +#include "llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolCompiland.h"<br class="">
> +#include "llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolExe.h"<br class="">
> +<br class="">
> #include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIAEnumDebugStreams.h"<br class="">
> +#include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIAEnumSourceFiles.h"<br class="">
> #include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIARawSymbol.h"<br class="">
> #include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIASession.h"<br class="">
> #include "llvm/DebugInfo/PDB/DIA/<u class=""></u>DIASourceFile.h"<br class="">
> -#include "llvm/DebugInfo/PDB/<u class=""></u>PDBSymbolExe.h"<br class="">
> #include "llvm/Support/ConvertUTF.h"<br class="">
><br class="">
> using namespace llvm;<br class="">
> @@ -75,6 +78,27 @@ std::unique_ptr<PDBSymbol> DIASession::g<br class="">
>   return PDBSymbol::create(*this, std::move(RawSymbol));<br class="">
> }<br class="">
><br class="">
> +std::unique_ptr<<u class=""></u>IPDBEnumSourceFiles> DIASession::getAllSourceFiles(<u class=""></u>) const {<br class="">
> +  CComPtr<IDiaEnumSourceFiles> Files;<br class="">
> +  if (S_OK != Session->findFile(nullptr, nullptr, nsNone, &Files))<br class="">
> +    return nullptr;<br class="">
> +<br class="">
> +  return std::make_unique<<u class=""></u>DIAEnumSourceFiles>(*this, Files);<br class="">
> +}<br class="">
> +<br class="">
> +std::unique_ptr<<u class=""></u>IPDBEnumSourceFiles> DIASession::<u class=""></u>getSourceFilesForCompiland(<br class="">
> +    const PDBSymbolCompiland &Compiland) const {<br class="">
> +  CComPtr<IDiaEnumSourceFiles> Files;<br class="">
> +<br class="">
> +  const DIARawSymbol &RawSymbol =<br class="">
> +      static_cast<const DIARawSymbol &>(Compiland.getRawSymbol());<br class="">
> +  if (S_OK !=<br class="">
> +      Session->findFile(RawSymbol.<u class=""></u>getDiaSymbol(), nullptr, nsNone, &Files))<br class="">
> +    return nullptr;<br class="">
> +<br class="">
> +  return std::make_unique<<u class=""></u>DIAEnumSourceFiles>(*this, Files);<br class="">
> +}<br class="">
> +<br class="">
> std::unique_ptr<<u class=""></u>IPDBSourceFile><br class="">
> DIASession::getSourceFileById(<u class=""></u>uint32_t FileId) const {<br class="">
>   CComPtr<IDiaSourceFile> LocatedFile;<br class="">
><br class="">
> Added: llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>IPDBSourceFile.cpp<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/IPDBSourceFile.cpp?rev=228755&view=auto" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/lib/<u class=""></u>DebugInfo/PDB/IPDBSourceFile.<u class=""></u>cpp?rev=228755&view=auto</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>IPDBSourceFile.cpp (added)<br class="">
> +++ llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>IPDBSourceFile.cpp Tue Feb 10 16:43:25 2015<br class="">
> @@ -0,0 +1,34 @@<br class="">
> +//===- IPDBSourceFile.cpp - base interface for a PDB source file *- C++ -*-===//<br class="">
> +//<br class="">
> +//                     The LLVM Compiler Infrastructure<br class="">
> +//<br class="">
> +// This file is distributed under the University of Illinois Open Source<br class="">
> +// License. See LICENSE.TXT for details.<br class="">
> +//<br class="">
> +//===------------------------<u class=""></u>------------------------------<u class=""></u>----------------===//<br class="">
> +<br class="">
> +#include "llvm/DebugInfo/PDB/<u class=""></u>IPDBSourceFile.h"<br class="">
> +#include "llvm/DebugInfo/PDB/PDBExtras.<u class=""></u>h"<br class="">
> +#include "llvm/Support/Format.h"<br class="">
> +#include "llvm/Support/raw_ostream.h"<br class="">
> +<br class="">
> +using namespace llvm;<br class="">
> +<br class="">
> +IPDBSourceFile::~<u class=""></u>IPDBSourceFile() {}<br class="">
> +<br class="">
> +void IPDBSourceFile::dump(raw_<u class=""></u>ostream &OS, int Indent,<br class="">
> +                          PDB_DumpLevel Level) const {<br class="">
> +  if (Level == PDB_DumpLevel::Compact) {<br class="">
> +    OS.indent(Indent);<br class="">
> +    PDB_Checksum ChecksumType = getChecksumType();<br class="">
> +    OS << "[";<br class="">
> +    if (ChecksumType != PDB_Checksum::None) {<br class="">
> +      OS << ChecksumType << ": ";<br class="">
> +      std::string Checksum = getChecksum();<br class="">
> +      for (uint8_t c : Checksum)<br class="">
> +        OS << format_hex_no_prefix(c, 2, true);<br class="">
> +    } else<br class="">
> +      OS << "No checksum";<br class="">
> +    OS << "] " << getFileName() << "\n";<br class="">
> +  }<br class="">
> +}<br class="">
><br class="">
> Added: llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBExtras.cpp<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/PDBExtras.cpp?rev=228755&view=auto" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/lib/<u class=""></u>DebugInfo/PDB/PDBExtras.cpp?<u class=""></u>rev=228755&view=auto</a><br class="">
> ==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
> --- llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBExtras.cpp (added)<br class="">
> +++ llvm/trunk/lib/DebugInfo/PDB/<u class=""></u>PDBExtras.cpp Tue Feb 10 16:43:25 2015<br class="">
> @@ -0,0 +1,219 @@<br class="">
> +//===- PDBExtras.cpp - helper functions and classes for PDBs -----*- C++-*-===//<br class="">
> +//<br class="">
> +//                     The LLVM Compiler Infrastructure<br class="">
> +//<br class="">
> +// This file is distributed under the University of Illinois Open Source<br class="">
> +// License. See LICENSE.TXT for details.<br class="">
> +//<br class="">
> +//===------------------------<u class=""></u>------------------------------<u class=""></u>----------------===//<br class="">
> +<br class="">
> +#include "llvm/DebugInfo/PDB/PDBExtras.<u class=""></u>h"<br class="">
> +#include "llvm/ADT/ArrayRef.h"<br class="">
> +<br class="">
> +using namespace llvm;<br class="">
> +<br class="">
> +#define CASE_OUTPUT_ENUM_CLASS_STR(<u class=""></u>Class, Value, Str, Stream)                  \<br class="">
> +  case Class::Value:                                                           \<br class="">
> +    Stream << Str;                                                             \<br class="">
> +    break;<br class="">
> +<br class="">
> +#define CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>Class, Value, Stream)                      \<br class="">
> +  CASE_OUTPUT_ENUM_CLASS_STR(<u class=""></u>Class, Value, #Value, Stream)<br class="">
> +<br class="">
> +raw_ostream &llvm::operator<<(raw_ostream &OS, const stream_indent &Indent) {<br class="">
> +  OS.indent(Indent.Width);<br class="">
> +  return OS;<br class="">
> +}<br class="">
> +<br class="">
> +raw_ostream &llvm::operator<<(raw_ostream &OS, const PDB_RegisterId &Reg) {<br class="">
> +  switch (Reg) {<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, AL, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, CL, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, DL, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, BL, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, AH, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, CH, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, DH, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, BH, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, AX, OS)<br class="">
> +    CASE_OUTPUT_ENUM_CLASS_NAME(<u class=""></u>PDB_RegisterId, CX, OS)<br class="">
> +    CASE</blockquote></div>
</div></blockquote></div><br class=""></body></html>