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