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 15namespace llvm { 16namespace pdb { 17class DIASession; 18 19class DIASectionContrib : public IPDBSectionContrib { 20public: 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 47private: 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