<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Thanks, will fix that.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">Craig Topper <craig.topper@gmail.com><br>
<b>Date: </b>Thursday, February 22, 2018 at 12:02 PM<br>
<b>To: </b>Aaron Smith <aaron.smith@microsoft.com><br>
<b>Cc: </b>llvm-commits <llvm-commits@lists.llvm.org><br>
<b>Subject: </b>Re: [llvm] r325824 - [PDB] Implement more find methods for PDB symbols<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><a name="_MailOriginalBody">I'm getting a warning from this commit with gcc
<o:p></o:p></a></p>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">llvm/unittests/DebugInfo/PDB/PDBApiTest.cpp:145:3: warning: 'findChildrenByAddr' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">  findChildrenByAddr(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">  ^<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">include/llvm/DebugInfo/PDB/IPDBRawSymbol.h:45:3: note: overridden virtual function is here<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">  findChildrenByAddr(PDB_SymType Type, StringRef Name,<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody"><br clear="all">
<o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">~Craig<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">On Thu, Feb 22, 2018 at 11:47 AM, Aaron Smith via llvm-commits <</span><a href="mailto:llvm-commits@lists.llvm.org" target="_blank"><span style="mso-bookmark:_MailOriginalBody">llvm-commits@lists.llvm.org</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody">>
 wrote:<o:p></o:p></span></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody">Author: asmith<br>
Date: Thu Feb 22 11:47:43 2018<br>
New Revision: 325824<br>
<br>
URL: </span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%3Frev%3D325824%26view%3Drev&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206565274%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=oK974dqh0kUCPKllh%2FNZfR9S3gTDrDyHUHVK7bYcWas%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://llvm.org/viewvc/llvm-project?rev=325824&view=rev</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
Log:<br>
[PDB] Implement more find methods for PDB symbols<br>
<br>
Summary:<br>
Add additional find methods on PDB raw symbols.<br>
<br>
findChildrenByAddr()<br>
findChildrenByVA()<br>
findInlineFramesByAddr()<br>
findInlineFramesByVA()<br>
findInlineLines()<br>
findInlineLinesByAddr()<br>
findInlineLinesByRVA()<br>
findInlineLinesByVA()<br>
<br>
<br>
<br>
<br>
Reviewers: zturner, llvm-commits<br>
<br>
Reviewed By: zturner<br>
<br>
Differential Revision: </span><a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Freviews.llvm.org%2FD43637&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206565274%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=iezI3M45FfBF%2BOKGM5dJpE8yLZ1J9j7r8YWTS6R1REU%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">https://reviews.llvm.org/D43637</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h<br>
    llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h<br>
    llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h<br>
    llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp<br>
    llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp<br>
    llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h<br>
URL: </span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Finclude%2Fllvm%2FDebugInfo%2FPDB%2FDIA%2FDIARawSymbol.h%3Frev%3D325824%26r1%3D325823%26r2%3D325824%26view%3Ddiff&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206565274%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=VorsVYJJnL%2B3LX4bhHOZMeZgN1GMlJotV67Z4Q1BenE%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h?rev=325824&r1=325823&r2=325824&view=diff</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h Thu Feb 22 11:47:43 2018<br>
@@ -30,10 +30,31 @@ public:<br>
   findChildren(PDB_SymType Type, StringRef Name,<br>
                PDB_NameSearchFlags Flags) const override;<br>
   std::unique_ptr<IPDBEnumSymbols><br>
+  findChildrenByAddr(PDB_SymType Type, StringRef Name,<br>
+                     PDB_NameSearchFlags Flags,<br>
+                     uint32_t Section, uint32_t Offset) const override;<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+  findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
+                   uint64_t VA) const override;<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
   findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
                     uint32_t RVA) const override;<br>
+<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+  findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override;<br>
   std::unique_ptr<IPDBEnumSymbols><br>
   findInlineFramesByRVA(uint32_t RVA) const override;<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+  findInlineFramesByVA(uint64_t VA) const override;<br>
+<br>
+  std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override;<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,<br>
+                         uint32_t Length) const override;<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override;<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;<br>
<br>
   void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const override;<br>
   void getFrontEndVersion(VersionInfo &Version) const override;<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h<br>
URL: </span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Finclude%2Fllvm%2FDebugInfo%2FPDB%2FIPDBRawSymbol.h%3Frev%3D325824%26r1%3D325823%26r2%3D325824%26view%3Ddiff&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206575278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=BxiM7GnPXiLzF1DinNuTE95fRBz53fWmB6s6Iswq4xs%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h?rev=325824&r1=325823&r2=325824&view=diff</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h Thu Feb 22 11:47:43 2018<br>
@@ -42,10 +42,31 @@ public:<br>
   findChildren(PDB_SymType Type, StringRef Name,<br>
                PDB_NameSearchFlags Flags) const = 0;<br>
   virtual std::unique_ptr<IPDBEnumSymbols><br>
+  findChildrenByAddr(PDB_SymType Type, StringRef Name,<br>
+                     PDB_NameSearchFlags Flags,<br>
+                     uint32_t Section, uint32_t Offset) const = 0;<br>
+  virtual std::unique_ptr<IPDBEnumSymbols><br>
+  findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
+                   uint64_t VA) const = 0;<br>
+  virtual std::unique_ptr<IPDBEnumSymbols><br>
   findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
                     uint32_t RVA) const = 0;<br>
+<br>
+  virtual std::unique_ptr<IPDBEnumSymbols><br>
+  findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const = 0;<br>
   virtual std::unique_ptr<IPDBEnumSymbols><br>
   findInlineFramesByRVA(uint32_t RVA) const = 0;<br>
+  virtual std::unique_ptr<IPDBEnumSymbols><br>
+  findInlineFramesByVA(uint64_t VA) const = 0;<br>
+<br>
+  virtual std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const = 0;<br>
+  virtual std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,<br>
+                         uint32_t Length) const = 0;<br>
+  virtual std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const = 0;<br>
+  virtual std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByVA(uint64_t VA, uint32_t Length) const = 0;<br>
<br>
   virtual void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const = 0;<br>
   virtual void getBackEndVersion(VersionInfo &Version) const = 0;<br>
<br>
Modified: llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h<br>
URL: </span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Finclude%2Fllvm%2FDebugInfo%2FPDB%2FNative%2FNativeRawSymbol.h%3Frev%3D325824%26r1%3D325823%26r2%3D325824%26view%3Ddiff&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206575278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=%2FeDzRAamTlEIkYhTn69k81iLuhyKTkl8mN2tcuTGM%2Bw%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h?rev=325824&r1=325823&r2=325824&view=diff</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h (original)<br>
+++ llvm/trunk/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h Thu Feb 22 11:47:43 2018<br>
@@ -35,10 +35,31 @@ public:<br>
     findChildren(PDB_SymType Type, StringRef Name,<br>
       PDB_NameSearchFlags Flags) const override;<br>
   std::unique_ptr<IPDBEnumSymbols><br>
+    findChildrenByAddr(PDB_SymType Type, StringRef Name,<br>
+                       PDB_NameSearchFlags Flags,<br>
+                       uint32_t Section, uint32_t Offset) const override;<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+    findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
+                     uint64_t VA) const override;<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
     findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
       uint32_t RVA) const override;<br>
+<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+    findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override;<br>
   std::unique_ptr<IPDBEnumSymbols><br>
     findInlineFramesByRVA(uint32_t RVA) const override;<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+    findInlineFramesByVA(uint64_t VA) const override;<br>
+<br>
+  std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override;<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+    findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,<br>
+                           uint32_t Length) const override;<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+    findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override;<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+    findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;<br>
<br>
   void getDataBytes(SmallVector<uint8_t, 32> &Bytes) const override;<br>
   void getFrontEndVersion(VersionInfo &Version) const override;<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp<br>
URL: </span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Flib%2FDebugInfo%2FPDB%2FDIA%2FDIARawSymbol.cpp%3Frev%3D325824%26r1%3D325823%26r2%3D325824%26view%3Ddiff&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206575278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=hxVpynvzBxsgFm6kJDMw001heS2QVHxii8AyQB59oAc%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp?rev=325824&r1=325823&r2=325824&view=diff</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp Thu Feb 22 11:47:43 2018<br>
@@ -400,6 +400,47 @@ DIARawSymbol::findChildren(PDB_SymType T<br>
 }<br>
<br>
 std::unique_ptr<IPDBEnumSymbols><br>
+DIARawSymbol::findChildrenByAddr(PDB_SymType Type, StringRef Name,<br>
+                                 PDB_NameSearchFlags Flags, uint32_t Section,<br>
+                                 uint32_t Offset) const {<br>
+  llvm::SmallVector<UTF16, 32> Name16;<br>
+  llvm::convertUTF8ToUTF16String(Name, Name16);<br>
+<br>
+  enum SymTagEnum EnumVal = static_cast<enum SymTagEnum>(Type);<br>
+<br>
+  DWORD CompareFlags = static_cast<DWORD>(Flags);<br>
+  wchar_t *Name16Str = reinterpret_cast<wchar_t *>(Name16.data());<br>
+<br>
+  CComPtr<IDiaEnumSymbols> DiaEnumerator;<br>
+  if (S_OK !=<br>
+      Symbol->findChildrenExByAddr(EnumVal, Name16Str, CompareFlags, Section,<br>
+                                   Offset, &DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumSymbols><br>
+DIARawSymbol::findChildrenByVA(PDB_SymType Type, StringRef Name,<br>
+                               PDB_NameSearchFlags Flags, uint64_t VA) const {<br>
+  llvm::SmallVector<UTF16, 32> Name16;<br>
+  llvm::convertUTF8ToUTF16String(Name, Name16);<br>
+<br>
+  enum SymTagEnum EnumVal = static_cast<enum SymTagEnum>(Type);<br>
+<br>
+  DWORD CompareFlags = static_cast<DWORD>(Flags);<br>
+  wchar_t *Name16Str = reinterpret_cast<wchar_t *>(Name16.data());<br>
+<br>
+  CComPtr<IDiaEnumSymbols> DiaEnumerator;<br>
+  if (S_OK !=<br>
+      Symbol->findChildrenExByVA(EnumVal, Name16Str, CompareFlags, VA,<br>
+                                  &DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumSymbols><br>
 DIARawSymbol::findChildrenByRVA(PDB_SymType Type, StringRef Name,<br>
                                 PDB_NameSearchFlags Flags, uint32_t RVA) const {<br>
   llvm::SmallVector<UTF16, 32> Name16;<br>
@@ -419,6 +460,15 @@ DIARawSymbol::findChildrenByRVA(PDB_SymT<br>
 }<br>
<br>
 std::unique_ptr<IPDBEnumSymbols><br>
+DIARawSymbol::findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const {<br>
+  CComPtr<IDiaEnumSymbols> DiaEnumerator;<br>
+  if (S_OK != Symbol->findInlineFramesByAddr(Section, Offset, &DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumSymbols><br>
 DIARawSymbol::findInlineFramesByRVA(uint32_t RVA) const {<br>
   CComPtr<IDiaEnumSymbols> DiaEnumerator;<br>
   if (S_OK != Symbol->findInlineFramesByRVA(RVA, &DiaEnumerator))<br>
@@ -427,6 +477,51 @@ DIARawSymbol::findInlineFramesByRVA(uint<br>
   return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);<br>
 }<br>
<br>
+std::unique_ptr<IPDBEnumSymbols><br>
+DIARawSymbol::findInlineFramesByVA(uint64_t VA) const {<br>
+  CComPtr<IDiaEnumSymbols> DiaEnumerator;<br>
+  if (S_OK != Symbol->findInlineFramesByVA(VA, &DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumSymbols>(Session, DiaEnumerator);<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers> DIARawSymbol::findInlineeLines() const {<br>
+  CComPtr<IDiaEnumLineNumbers> DiaEnumerator;<br>
+  if (S_OK != Symbol->findInlineeLines(&DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers><br>
+DIARawSymbol::findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,<br>
+                                     uint32_t Length) const {<br>
+  CComPtr<IDiaEnumLineNumbers> DiaEnumerator;<br>
+  if (S_OK != Symbol->findInlineeLinesByAddr(Section, Offset, Length, &DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers><br>
+DIARawSymbol::findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const {<br>
+  CComPtr<IDiaEnumLineNumbers> DiaEnumerator;<br>
+  if (S_OK != Symbol->findInlineeLinesByRVA(RVA, Length, &DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers><br>
+DIARawSymbol::findInlineeLinesByVA(uint64_t VA, uint32_t Length) const {<br>
+  CComPtr<IDiaEnumLineNumbers> DiaEnumerator;<br>
+  if (S_OK != Symbol->findInlineeLinesByVA(VA, Length, &DiaEnumerator))<br>
+    return nullptr;<br>
+<br>
+  return llvm::make_unique<DIAEnumLineNumbers>(DiaEnumerator);<br>
+}<br>
+<br>
 void DIARawSymbol::getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const {<br>
   bytes.clear();<br>
<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp<br>
URL: </span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Flib%2FDebugInfo%2FPDB%2FNative%2FNativeRawSymbol.cpp%3Frev%3D325824%26r1%3D325823%26r2%3D325824%26view%3Ddiff&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206575278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=dl%2BPNGKRcbvJ3Vz1jrYUkoeknjvSvBediolTSssFLH4%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp?rev=325824&r1=325823&r2=325824&view=diff</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp Thu Feb 22 11:47:43 2018<br>
@@ -30,16 +30,60 @@ NativeRawSymbol::findChildren(PDB_SymTyp<br>
 }<br>
<br>
 std::unique_ptr<IPDBEnumSymbols><br>
+NativeRawSymbol::findChildrenByAddr(PDB_SymType Type, StringRef Name,<br>
+    PDB_NameSearchFlags Flags, uint32_t Section, uint32_t Offset) const {<br>
+  return nullptr;<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumSymbols><br>
+NativeRawSymbol::findChildrenByVA(PDB_SymType Type, StringRef Name,<br>
+   PDB_NameSearchFlags Flags, uint64_t VA) const {<br>
+  return nullptr;<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumSymbols><br>
 NativeRawSymbol::findChildrenByRVA(PDB_SymType Type, StringRef Name,<br>
     PDB_NameSearchFlags Flags, uint32_t RVA) const {<br>
   return nullptr;<br>
 }<br>
<br>
 std::unique_ptr<IPDBEnumSymbols><br>
+NativeRawSymbol::findInlineFramesByAddr(uint32_t Section,<br>
+                                        uint32_t Offset) const {<br>
+  return nullptr;<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumSymbols><br>
 NativeRawSymbol::findInlineFramesByRVA(uint32_t RVA) const {<br>
   return nullptr;<br>
 }<br>
<br>
+std::unique_ptr<IPDBEnumSymbols><br>
+NativeRawSymbol::findInlineFramesByVA(uint64_t VA) const {<br>
+  return nullptr;<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers><br>
+NativeRawSymbol::findInlineeLines() const {<br>
+  return nullptr;<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers><br>
+NativeRawSymbol::findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,<br>
+                                        uint32_t Length) const {<br>
+  return nullptr;<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers><br>
+NativeRawSymbol::findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const {<br>
+  return nullptr;<br>
+}<br>
+<br>
+std::unique_ptr<IPDBEnumLineNumbers><br>
+NativeRawSymbol::findInlineeLinesByVA(uint64_t VA, uint32_t Length) const {<br>
+  return nullptr;<br>
+}<br>
+<br>
 void NativeRawSymbol::getDataBytes(SmallVector<uint8_t, 32> &bytes) const {<br>
   bytes.clear();<br>
 }<br>
<br>
Modified: llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp<br>
URL: </span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fllvm.org%2Fviewvc%2Fllvm-project%2Fllvm%2Ftrunk%2Funittests%2FDebugInfo%2FPDB%2FPDBApiTest.cpp%3Frev%3D325824%26r1%3D325823%26r2%3D325824%26view%3Ddiff&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206575278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=gpACAB3JTEkkldZj6yt76Gq4bw0dUglF4Q5cCNphrxw%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp?rev=325824&r1=325823&r2=325824&view=diff</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
==============================================================================<br>
--- llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp (original)<br>
+++ llvm/trunk/unittests/DebugInfo/PDB/PDBApiTest.cpp Thu Feb 22 11:47:43 2018<br>
@@ -142,14 +142,48 @@ public:<br>
     return nullptr;<br>
   }<br>
   std::unique_ptr<IPDBEnumSymbols><br>
+  findChildrenByAddr(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
+                     uint32_t Section, uint32_t Offset) const {<br>
+    return nullptr;<br>
+  }<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+  findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
+                   uint64_t VA) const override {<br>
+    return nullptr;<br>
+  }<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
   findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,<br>
                     uint32_t RVA) const override {<br>
     return nullptr;<br>
   }<br>
   std::unique_ptr<IPDBEnumSymbols><br>
+  findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override {<br>
+    return nullptr;<br>
+  }<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
   findInlineFramesByRVA(uint32_t RVA) const override {<br>
     return nullptr;<br>
   }<br>
+  std::unique_ptr<IPDBEnumSymbols><br>
+  findInlineFramesByVA(uint64_t VA) const override {<br>
+    return nullptr;<br>
+  }<br>
+  std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override {<br>
+    return nullptr;<br>
+  }<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,<br>
+                         uint32_t Length) const override {<br>
+    return nullptr;<br>
+  }<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override {<br>
+    return nullptr;<br>
+  }<br>
+  std::unique_ptr<IPDBEnumLineNumbers><br>
+  findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override {<br>
+    return nullptr;<br>
+  }<br>
<br>
   void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const override {}<br>
   void getFrontEndVersion(VersionInfo &Version) const override {}<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
</span><a href="mailto:llvm-commits@lists.llvm.org"><span style="mso-bookmark:_MailOriginalBody">llvm-commits@lists.llvm.org</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><br>
</span><a href="https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-commits&data=04%7C01%7Caaron.smith%40microsoft.com%7Cf8450ec15aa948c210f508d57a2f2120%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636549265206575278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=%2FZk7gVFW8ckoCkXzcRfGx6xfcOtK03z9UY8xooA8ymE%3D&reserved=0" target="_blank"><span style="mso-bookmark:_MailOriginalBody">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</span><span style="mso-bookmark:_MailOriginalBody"></span></a><span style="mso-bookmark:_MailOriginalBody"><o:p></o:p></span></p>
</blockquote>
</div>
<p class="MsoNormal"><span style="mso-bookmark:_MailOriginalBody"><o:p> </o:p></span></p>
</div>
</div>
</body>
</html>