PDBSymbolFunc.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. #ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLFUNC_H
  10. #define LLVM_DEBUGINFO_PDB_PDBSYMBOLFUNC_H
  11. #include "PDBSymbol.h"
  12. #include "PDBTypes.h"
  13. namespace llvm {
  14. class raw_ostream;
  15. class PDBSymbolFunc : public PDBSymbol {
  16. public:
  17. PDBSymbolFunc(const IPDBSession &PDBSession,
  18. std::unique_ptr<IPDBRawSymbol> FuncSymbol);
  19. void dump(PDBSymDumper &Dumper) const override;
  20. std::unique_ptr<PDBSymbolTypeFunctionSig> getSignature() const;
  21. std::unique_ptr<PDBSymbolTypeUDT> getClassParent() const;
  22. std::unique_ptr<IPDBEnumChildren<PDBSymbolData>> getArguments() const;
  23. DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::Function)
  24. FORWARD_SYMBOL_METHOD(getAccess)
  25. FORWARD_SYMBOL_METHOD(getAddressOffset)
  26. FORWARD_SYMBOL_METHOD(getAddressSection)
  27. FORWARD_SYMBOL_METHOD(getClassParentId)
  28. FORWARD_SYMBOL_METHOD(isCompilerGenerated)
  29. FORWARD_SYMBOL_METHOD(isConstType)
  30. FORWARD_SYMBOL_METHOD(hasCustomCallingConvention)
  31. FORWARD_SYMBOL_METHOD(hasFarReturn)
  32. FORWARD_SYMBOL_METHOD(hasAlloca)
  33. FORWARD_SYMBOL_METHOD(hasEH)
  34. FORWARD_SYMBOL_METHOD(hasEHa)
  35. FORWARD_SYMBOL_METHOD(hasInlAsm)
  36. FORWARD_SYMBOL_METHOD(hasLongJump)
  37. FORWARD_SYMBOL_METHOD(hasSEH)
  38. FORWARD_SYMBOL_METHOD(hasSecurityChecks)
  39. FORWARD_SYMBOL_METHOD(hasSetJump)
  40. FORWARD_SYMBOL_METHOD(hasInterruptReturn)
  41. FORWARD_SYMBOL_METHOD(isIntroVirtualFunction)
  42. FORWARD_SYMBOL_METHOD(hasInlineAttribute)
  43. FORWARD_SYMBOL_METHOD(isNaked)
  44. FORWARD_SYMBOL_METHOD(isStatic)
  45. FORWARD_SYMBOL_METHOD(getLength)
  46. FORWARD_SYMBOL_METHOD(getLexicalParentId)
  47. FORWARD_SYMBOL_METHOD(getLocalBasePointerRegisterId)
  48. FORWARD_SYMBOL_METHOD(getLocationType)
  49. FORWARD_SYMBOL_METHOD(getName)
  50. FORWARD_SYMBOL_METHOD(hasFramePointer)
  51. FORWARD_SYMBOL_METHOD(hasNoInlineAttribute)
  52. FORWARD_SYMBOL_METHOD(hasNoReturnAttribute)
  53. FORWARD_SYMBOL_METHOD(isUnreached)
  54. FORWARD_SYMBOL_METHOD(getNoStackOrdering)
  55. FORWARD_SYMBOL_METHOD(hasOptimizedCodeDebugInfo)
  56. FORWARD_SYMBOL_METHOD(isPureVirtual)
  57. FORWARD_SYMBOL_METHOD(getRelativeVirtualAddress)
  58. FORWARD_SYMBOL_METHOD(getSymIndexId)
  59. FORWARD_SYMBOL_METHOD(getToken)
  60. FORWARD_SYMBOL_METHOD(getTypeId)
  61. FORWARD_SYMBOL_METHOD(isUnalignedType)
  62. FORWARD_SYMBOL_METHOD(getUndecoratedName)
  63. FORWARD_SYMBOL_METHOD(isVirtual)
  64. FORWARD_SYMBOL_METHOD(getVirtualAddress)
  65. FORWARD_SYMBOL_METHOD(getVirtualBaseOffset)
  66. FORWARD_SYMBOL_METHOD(isVolatileType)
  67. };
  68. } // namespace llvm
  69. #endif // LLVM_DEBUGINFO_PDB_PDBSYMBOLFUNC_H