Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

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