LLVM  8.0.1
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
 This class represents lattice values for constants.
 
 llvm::pdb
 

Macros

#define FORWARD_SYMBOL_METHOD(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; }
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx.
Definition: PDBTypes.h:183

Definition at line 51 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 60 of file PDBSymbol.h.

◆ FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME

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

Definition at line 25 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 39 of file PDBSymbol.h.

Referenced by llvm::pdb::PDBSymbolCompilandDetails::getBackEndVersion().

◆ FORWARD_SYMBOL_ID_METHOD_WITH_NAME

#define FORWARD_SYMBOL_ID_METHOD_WITH_NAME (   PrivateName,
  PublicName 
)
Value:
PublicName)
#define FORWARD_CONCRETE_SYMBOL_ID_METHOD_WITH_NAME(ConcreteType, PrivateName, PublicName)
Definition: PDBSymbol.h:25

Definition at line 35 of file PDBSymbol.h.

◆ FORWARD_SYMBOL_METHOD

#define FORWARD_SYMBOL_METHOD (   MethodName)
Value:
auto MethodName() const->decltype(RawSymbol->MethodName()) { \
return RawSymbol->MethodName(); \
}
aarch64 promote const

Definition at line 20 of file PDBSymbol.h.

Referenced by llvm::pdb::PDBSymbolCompilandDetails::getBackEndVersion().