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 | |