LLVM  8.0.0svn
PDBSymbolFunc.h
Go to the documentation of this file.
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"
16 #include "PDBTypes.h"
17 
18 namespace llvm {
19 
20 class raw_ostream;
21 
22 namespace pdb {
23 
24 class PDBSymbolFunc : public PDBSymbol {
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  FORWARD_SYMBOL_ID_METHOD(getClassParent)
37  FORWARD_SYMBOL_METHOD(isCompilerGenerated)
38  FORWARD_SYMBOL_METHOD(isConstructorVirtualBase)
39  FORWARD_SYMBOL_METHOD(isConstType)
40  FORWARD_SYMBOL_METHOD(isCxxReturnUdt)
41  FORWARD_SYMBOL_METHOD(hasCustomCallingConvention)
42  FORWARD_SYMBOL_METHOD(hasFarReturn)
43  FORWARD_SYMBOL_METHOD(hasAlloca)
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  FORWARD_SYMBOL_METHOD(isIntroVirtualFunction)
53  FORWARD_SYMBOL_METHOD(hasInlineAttribute)
54  FORWARD_SYMBOL_METHOD(isNaked)
55  FORWARD_SYMBOL_METHOD(isStatic)
56  FORWARD_SYMBOL_METHOD(getLength)
57  FORWARD_SYMBOL_ID_METHOD(getLexicalParent)
58  FORWARD_SYMBOL_METHOD(getLocalBasePointerRegisterId)
59  FORWARD_SYMBOL_METHOD(getLocationType)
61  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  FORWARD_SYMBOL_METHOD(isPureVirtual)
68  FORWARD_SYMBOL_METHOD(getRelativeVirtualAddress)
72  FORWARD_SYMBOL_METHOD(isUnalignedType)
73  FORWARD_SYMBOL_METHOD(getUndecoratedName)
74  FORWARD_SYMBOL_METHOD(isVirtual)
75  FORWARD_SYMBOL_METHOD(getVirtualAddress)
76  FORWARD_SYMBOL_METHOD(getVirtualBaseOffset)
77  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
#define DECLARE_PDB_SYMBOL_CONCRETE_TYPE(TagValue)
Definition: PDBSymbol.h:51
Compute iterated dominance frontiers using a linear time algorithm.
Definition: AllocatorList.h:24
std::unique_ptr< IPDBEnumChildren< PDBSymbolData > > getArguments() const
static StringRef getName(Value *V)
#define FORWARD_SYMBOL_METHOD(MethodName)
Definition: PDBSymbol.h:20
std::pair< StringRef, StringRef > getToken(StringRef Source, StringRef Delimiters=" \\\)
getToken - This function extracts one token from source, ignoring any leading characters that appear ...
#define FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME(ConcreteType, PrivateName, PublicName)
Definition: PDBSymbol.h:25
static wasm::ValType getType(const TargetRegisterClass *RC)
PDBSymbol defines the base of the inheritance hierarchy for concrete symbol types (e...
Definition: PDBSymbol.h:74
#define FORWARD_SYMBOL_ID_METHOD(MethodName)
Definition: PDBSymbol.h:39
FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME(PDBSymbolTypeFunctionSig, getType, getSignature) std uint32_t getCompilandId() const
static std::string getSignature(FunctionType *FTy)
void dump(PDBSymDumper &Dumper) const override
Dumps the contents of a symbol a raw_ostream.