[PATCH] D43638: [PDB] Check the result of setLoadAddress()

Aaron Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 22 10:57:17 PST 2018


asmith created this revision.
asmith added reviewers: zturner, llvm-commits.

Change setLoadAddress() to return true or false on failure.


Repository:
  rL LLVM

https://reviews.llvm.org/D43638

Files:
  include/llvm/DebugInfo/PDB/DIA/DIASession.h
  include/llvm/DebugInfo/PDB/IPDBSession.h
  include/llvm/DebugInfo/PDB/Native/NativeSession.h
  lib/DebugInfo/PDB/DIA/DIASession.cpp
  lib/DebugInfo/PDB/Native/NativeSession.cpp
  unittests/DebugInfo/PDB/PDBApiTest.cpp


Index: unittests/DebugInfo/PDB/PDBApiTest.cpp
===================================================================
--- unittests/DebugInfo/PDB/PDBApiTest.cpp
+++ unittests/DebugInfo/PDB/PDBApiTest.cpp
@@ -63,7 +63,7 @@
 
 class MockSession : public IPDBSession {
   uint64_t getLoadAddress() const override { return 0; }
-  void setLoadAddress(uint64_t Address) override {}
+  bool setLoadAddress(uint64_t Address) override { return false; }
   std::unique_ptr<PDBSymbolExe> getGlobalScope() override { return nullptr; }
   std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const override {
     return nullptr;
Index: lib/DebugInfo/PDB/Native/NativeSession.cpp
===================================================================
--- lib/DebugInfo/PDB/Native/NativeSession.cpp
+++ lib/DebugInfo/PDB/Native/NativeSession.cpp
@@ -165,7 +165,7 @@
 
 uint64_t NativeSession::getLoadAddress() const { return 0; }
 
-void NativeSession::setLoadAddress(uint64_t Address) {}
+bool NativeSession::setLoadAddress(uint64_t Address) { return false; }
 
 std::unique_ptr<PDBSymbolExe> NativeSession::getGlobalScope() {
   const auto Id = static_cast<SymIndexId>(SymbolCache.size());
Index: lib/DebugInfo/PDB/DIA/DIASession.cpp
===================================================================
--- lib/DebugInfo/PDB/DIA/DIASession.cpp
+++ lib/DebugInfo/PDB/DIA/DIASession.cpp
@@ -148,8 +148,8 @@
   return (success) ? LoadAddress : 0;
 }
 
-void DIASession::setLoadAddress(uint64_t Address) {
-  Session->put_loadAddress(Address);
+bool DIASession::setLoadAddress(uint64_t Address) {
+  return (S_OK == Session->put_loadAddress(Address));
 }
 
 std::unique_ptr<PDBSymbolExe> DIASession::getGlobalScope() {
Index: include/llvm/DebugInfo/PDB/Native/NativeSession.h
===================================================================
--- include/llvm/DebugInfo/PDB/Native/NativeSession.h
+++ include/llvm/DebugInfo/PDB/Native/NativeSession.h
@@ -49,7 +49,7 @@
   SymIndexId findSymbolByTypeIndex(codeview::TypeIndex TI);
 
   uint64_t getLoadAddress() const override;
-  void setLoadAddress(uint64_t Address) override;
+  bool setLoadAddress(uint64_t Address) override;
   std::unique_ptr<PDBSymbolExe> getGlobalScope() override;
   std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const override;
 
Index: include/llvm/DebugInfo/PDB/IPDBSession.h
===================================================================
--- include/llvm/DebugInfo/PDB/IPDBSession.h
+++ include/llvm/DebugInfo/PDB/IPDBSession.h
@@ -28,7 +28,7 @@
   virtual ~IPDBSession();
 
   virtual uint64_t getLoadAddress() const = 0;
-  virtual void setLoadAddress(uint64_t Address) = 0;
+  virtual bool setLoadAddress(uint64_t Address) = 0;
   virtual std::unique_ptr<PDBSymbolExe> getGlobalScope() = 0;
   virtual std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const = 0;
 
Index: include/llvm/DebugInfo/PDB/DIA/DIASession.h
===================================================================
--- include/llvm/DebugInfo/PDB/DIA/DIASession.h
+++ include/llvm/DebugInfo/PDB/DIA/DIASession.h
@@ -30,7 +30,7 @@
                              std::unique_ptr<IPDBSession> &Session);
 
   uint64_t getLoadAddress() const override;
-  void setLoadAddress(uint64_t Address) override;
+  bool setLoadAddress(uint64_t Address) override;
   std::unique_ptr<PDBSymbolExe> getGlobalScope() override;
   std::unique_ptr<PDBSymbol> getSymbolById(uint32_t SymbolId) const override;
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43638.135471.patch
Type: text/x-patch
Size: 3454 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180222/a23ffdc4/attachment.bin>


More information about the llvm-commits mailing list