Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  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.