About
Contact
QtCreator
KDevelop
Solarized
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
89