1 //===- DIASectionContrib.h - DIA Impl. of IPDBSectionContrib ------ C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_DEBUGINFO_PDB_DIA_DIASECTIONCONTRIB_H 11 #define LLVM_DEBUGINFO_PDB_DIA_DIASECTIONCONTRIB_H 12 13 #include "DIASupport.h" 14 #include "llvm/DebugInfo/PDB/IPDBSectionContrib.h" 15 16 namespace llvm { 17 namespace pdb { 18 class DIASession; 19 20 class DIASectionContrib : public IPDBSectionContrib { 21 public: 22 explicit DIASectionContrib(const DIASession &PDBSession, 23 CComPtr<IDiaSectionContrib> DiaSection); 24 25 std::unique_ptr<PDBSymbolCompiland> getCompiland() const override; 26 uint32_t getAddressSection() const override; 27 uint32_t getAddressOffset() const override; 28 uint32_t getRelativeVirtualAddress() const override; 29 uint64_t getVirtualAddress() const override; 30 uint32_t getLength() const override; 31 bool isNotPaged() const override; 32 bool hasCode() const override; 33 bool hasCode16Bit() const override; 34 bool hasInitializedData() const override; 35 bool hasUninitializedData() const override; 36 bool isRemoved() const override; 37 bool hasComdat() const override; 38 bool isDiscardable() const override; 39 bool isNotCached() const override; 40 bool isShared() const override; 41 bool isExecutable() const override; 42 bool isReadable() const override; 43 bool isWritable() const override; 44 uint32_t getDataCrc32() const override; 45 uint32_t getRelocationsCrc32() const override; 46 uint32_t getCompilandId() const override; 47 48 private: 49 const DIASession &Session; 50 CComPtr<IDiaSectionContrib> Section; 51 }; 52 } // namespace pdb 53 } // namespace llvm 54 55 #endif // LLVM_DEBUGINFO_PDB_DIA_DIASECTIONCONTRIB_H 56