LLVM  14.0.0git
Classes | Namespaces | Macros
PDBSymbol.h File Reference
#include "ConcreteSymbolEnumerator.h"
#include "IPDBRawSymbol.h"
#include "PDBExtras.h"
#include "PDBTypes.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Casting.h"
Include dependency graph for PDBSymbol.h:

Go to the source code of this file.

Classes

class  llvm::pdb::PDBSymbol
 PDBSymbol defines the base of the inheritance hierarchy for concrete symbol types (e.g. More...
 

Namespaces

 llvm
 ---------------------— PointerInfo ------------------------------------—
 
 llvm::pdb
 

Macros

#define FORWARD_SYMBOL_METHOD(MethodName)   decltype(auto) MethodName() const { return RawSymbol->MethodName(); }
 
#define FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME(ConcreteType, PrivateName, PublicName)
 
#define FORWARD_SYMBOL_ID_METHOD_WITH_NAME(PrivateName, PublicName)
 
#define FORWARD_SYMBOL_ID_METHOD(MethodName)   FORWARD_SYMBOL_ID_METHOD_WITH_NAME(MethodName, MethodName)
 
#define DECLARE_PDB_SYMBOL_CONCRETE_TYPE(TagValue)
 
#define DECLARE_PDB_SYMBOL_CUSTOM_TYPE(Condition)
 

Macro Definition Documentation

◆ DECLARE_PDB_SYMBOL_CONCRETE_TYPE

#define DECLARE_PDB_SYMBOL_CONCRETE_TYPE (   TagValue)
Value:
private: \
using PDBSymbol::PDBSymbol; \
friend class PDBSymbol; \
\
public: \
static const PDB_SymType Tag = TagValue; \
static bool classof(const PDBSymbol *S) { return S->getSymTag() == Tag; }

Definition at line 47 of file PDBSymbol.h.

◆ DECLARE_PDB_SYMBOL_CUSTOM_TYPE

#define DECLARE_PDB_SYMBOL_CUSTOM_TYPE (   Condition)
Value:
private: \
using PDBSymbol::PDBSymbol; \
friend class PDBSymbol; \
\
public: \
static bool classof(const PDBSymbol *S) { return Condition; }

Definition at line 56 of file PDBSymbol.h.

◆ FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME

#define FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME (   ConcreteType,
  PrivateName,
  PublicName 
)
Value:
decltype(auto) PublicName##Id() const { \
return RawSymbol->PrivateName##Id(); \
} \
std::unique_ptr<ConcreteType> PublicName() const { \
uint32_t Id = PublicName##Id(); \
return getConcreteSymbolByIdHelper<ConcreteType>(Id); \
}

Definition at line 22 of file PDBSymbol.h.

◆ FORWARD_SYMBOL_ID_METHOD

#define FORWARD_SYMBOL_ID_METHOD (   MethodName)    FORWARD_SYMBOL_ID_METHOD_WITH_NAME(MethodName, MethodName)

Definition at line 36 of file PDBSymbol.h.

◆ FORWARD_SYMBOL_ID_METHOD_WITH_NAME

#define FORWARD_SYMBOL_ID_METHOD_WITH_NAME (   PrivateName,
  PublicName 
)
Value:
PublicName)

Definition at line 32 of file PDBSymbol.h.

◆ FORWARD_SYMBOL_METHOD

#define FORWARD_SYMBOL_METHOD (   MethodName)    decltype(auto) MethodName() const { return RawSymbol->MethodName(); }

Definition at line 19 of file PDBSymbol.h.

llvm::dwarf::Tag
Tag
Definition: Dwarf.h:104
llvm::pdb::PDB_SymType
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:243
FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME
#define FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME(ConcreteType, PrivateName, PublicName)
Definition: PDBSymbol.h:22
S
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
Definition: README.txt:210