Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
14 | pmbaty | 1 | //===- PDBSymbolFunc.h - class representing a function instance -*- 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_PDBSYMBOLFUNC_H |
||
10 | #define LLVM_DEBUGINFO_PDB_PDBSYMBOLFUNC_H |
||
11 | |||
12 | #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h" |
||
13 | |||
14 | #include "PDBSymbol.h" |
||
15 | #include "PDBTypes.h" |
||
16 | |||
17 | namespace llvm { |
||
18 | |||
19 | namespace pdb { |
||
20 | |||
21 | class PDBSymDumper; |
||
22 | class PDBSymbolData; |
||
23 | class PDBSymbolTypeFunctionSig; |
||
24 | template <typename ChildType> class IPDBEnumChildren; |
||
25 | |||
26 | class PDBSymbolFunc : public PDBSymbol { |
||
27 | DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::Function) |
||
28 | public: |
||
29 | void dump(PDBSymDumper &Dumper) const override; |
||
30 | |||
31 | bool isDestructor() const; |
||
32 | |||
33 | std::unique_ptr<IPDBEnumChildren<PDBSymbolData>> getArguments() const; |
||
34 | |||
35 | FORWARD_SYMBOL_METHOD(getAccess) |
||
36 | FORWARD_SYMBOL_METHOD(getAddressOffset) |
||
37 | FORWARD_SYMBOL_METHOD(getAddressSection) |
||
38 | FORWARD_SYMBOL_ID_METHOD(getClassParent) |
||
39 | FORWARD_SYMBOL_METHOD(isCompilerGenerated) |
||
40 | FORWARD_SYMBOL_METHOD(isConstructorVirtualBase) |
||
41 | FORWARD_SYMBOL_METHOD(isConstType) |
||
42 | FORWARD_SYMBOL_METHOD(isCxxReturnUdt) |
||
43 | FORWARD_SYMBOL_METHOD(hasCustomCallingConvention) |
||
44 | FORWARD_SYMBOL_METHOD(hasFarReturn) |
||
45 | FORWARD_SYMBOL_METHOD(hasAlloca) |
||
46 | FORWARD_SYMBOL_METHOD(hasEH) |
||
47 | FORWARD_SYMBOL_METHOD(hasEHa) |
||
48 | FORWARD_SYMBOL_METHOD(hasInlAsm) |
||
49 | FORWARD_SYMBOL_METHOD(hasLongJump) |
||
50 | FORWARD_SYMBOL_METHOD(hasSEH) |
||
51 | FORWARD_SYMBOL_METHOD(hasSecurityChecks) |
||
52 | FORWARD_SYMBOL_METHOD(hasSetJump) |
||
53 | FORWARD_SYMBOL_METHOD(hasInterruptReturn) |
||
54 | FORWARD_SYMBOL_METHOD(isIntroVirtualFunction) |
||
55 | FORWARD_SYMBOL_METHOD(hasInlineAttribute) |
||
56 | FORWARD_SYMBOL_METHOD(isNaked) |
||
57 | FORWARD_SYMBOL_METHOD(isStatic) |
||
58 | FORWARD_SYMBOL_METHOD(getLength) |
||
59 | FORWARD_SYMBOL_ID_METHOD(getLexicalParent) |
||
60 | FORWARD_SYMBOL_METHOD(getLocalBasePointerRegisterId) |
||
61 | FORWARD_SYMBOL_METHOD(getLocationType) |
||
62 | FORWARD_SYMBOL_METHOD(getName) |
||
63 | FORWARD_SYMBOL_METHOD(hasFramePointer) |
||
64 | FORWARD_SYMBOL_METHOD(hasNoInlineAttribute) |
||
65 | FORWARD_SYMBOL_METHOD(hasNoReturnAttribute) |
||
66 | FORWARD_SYMBOL_METHOD(isUnreached) |
||
67 | FORWARD_SYMBOL_METHOD(getNoStackOrdering) |
||
68 | FORWARD_SYMBOL_METHOD(hasOptimizedCodeDebugInfo) |
||
69 | FORWARD_SYMBOL_METHOD(isPureVirtual) |
||
70 | FORWARD_SYMBOL_METHOD(getRelativeVirtualAddress) |
||
71 | FORWARD_SYMBOL_METHOD(getToken) |
||
72 | FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME(PDBSymbolTypeFunctionSig, getType, |
||
73 | getSignature) |
||
74 | FORWARD_SYMBOL_METHOD(isUnalignedType) |
||
75 | FORWARD_SYMBOL_METHOD(getUndecoratedName) |
||
76 | FORWARD_SYMBOL_METHOD(isVirtual) |
||
77 | FORWARD_SYMBOL_METHOD(getVirtualAddress) |
||
78 | FORWARD_SYMBOL_METHOD(getVirtualBaseOffset) |
||
79 | FORWARD_SYMBOL_METHOD(isVolatileType) |
||
80 | |||
81 | std::unique_ptr<IPDBEnumLineNumbers> getLineNumbers() const; |
||
82 | uint32_t getCompilandId() const; |
||
83 | }; |
||
84 | |||
85 | } // namespace pdb |
||
86 | } // namespace llvm |
||
87 | |||
88 | #endif // LLVM_DEBUGINFO_PDB_PDBSYMBOLFUNC_H |