]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h
MFV r344364:
[FreeBSD/FreeBSD.git] / contrib / llvm / include / llvm / DebugInfo / PDB / IPDBSectionContrib.h
1 //==- IPDBSectionContrib.h - Interfaces for PDB SectionContribs --*- 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_IPDBSECTIONCONTRIB_H
11 #define LLVM_DEBUGINFO_PDB_IPDBSECTIONCONTRIB_H
12
13 #include "PDBTypes.h"
14
15 namespace llvm {
16 namespace pdb {
17
18 /// IPDBSectionContrib defines an interface used to represent section
19 /// contributions whose information are stored in the PDB.
20 class IPDBSectionContrib {
21 public:
22   virtual ~IPDBSectionContrib();
23
24   virtual std::unique_ptr<PDBSymbolCompiland> getCompiland() const = 0;
25   virtual uint32_t getAddressSection() const = 0;
26   virtual uint32_t getAddressOffset() const = 0;
27   virtual uint32_t getRelativeVirtualAddress() const = 0;
28   virtual uint64_t getVirtualAddress() const  = 0;
29   virtual uint32_t getLength() const = 0;
30   virtual bool isNotPaged() const = 0;
31   virtual bool hasCode() const = 0;
32   virtual bool hasCode16Bit() const = 0;
33   virtual bool hasInitializedData() const = 0;
34   virtual bool hasUninitializedData() const = 0;
35   virtual bool isRemoved() const = 0;
36   virtual bool hasComdat() const = 0;
37   virtual bool isDiscardable() const = 0;
38   virtual bool isNotCached() const = 0;
39   virtual bool isShared() const = 0;
40   virtual bool isExecutable() const = 0;
41   virtual bool isReadable() const = 0;
42   virtual bool isWritable() const = 0;
43   virtual uint32_t getDataCrc32() const = 0;
44   virtual uint32_t getRelocationsCrc32() const = 0;
45   virtual uint32_t getCompilandId() const = 0;
46 };
47 }
48 }
49
50 #endif // LLVM_DEBUGINFO_PDB_IPDBSECTIONCONTRIB_H