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