29  NativeTypeFunctionArg(NativeSession &Session,
 
   30                        std::unique_ptr<PDBSymbol> RealType)
 
   32        RealType(std::
move(RealType)) {}
 
   39                      PdbSymbolIdField::Type, ShowIdFields, RecurseIdFields);
 
   42  SymIndexId getTypeId()
 const override { 
return RealType->getSymIndexId(); }
 
   44  std::unique_ptr<PDBSymbol> RealType;
 
   49  NativeEnumFunctionArgs(NativeSession &Session,
 
   50                         std::unique_ptr<NativeEnumTypes> TypeEnumerator)
 
   51      : Session(Session), TypeEnumerator(std::
move(TypeEnumerator)) {}
 
   53  uint32_t getChildCount()
 const override {
 
   54    return TypeEnumerator->getChildCount();
 
   56  std::unique_ptr<PDBSymbol> getChildAtIndex(uint32_t Index)
 const override {
 
   57    return wrap(TypeEnumerator->getChildAtIndex(Index));
 
   59  std::unique_ptr<PDBSymbol> getNext()
 override {
 
   60    return wrap(TypeEnumerator->getNext());
 
   63  void reset()
 override { TypeEnumerator->reset(); }
 
   66  std::unique_ptr<PDBSymbol> 
wrap(std::unique_ptr<PDBSymbol> S)
 const {
 
   69    auto NTFA = std::make_unique<NativeTypeFunctionArg>(Session, std::move(S));
 
   72  NativeSession &Session;
 
   73  std::unique_ptr<NativeEnumTypes> TypeEnumerator;
 
   91  if (IsMemberFunction) {
 
   96    initializeArgList(
Proc.ArgumentList);
 
 
  123  if (IsMemberFunction)
 
 
  134std::unique_ptr<IPDBEnumSymbols>
 
  137    return std::make_unique<NullEnumerator<PDBSymbol>>();
 
  139  auto NET = std::make_unique<NativeEnumTypes>(
Session,
 
  141  return std::unique_ptr<IPDBEnumSymbols>(
 
  142      new NativeEnumFunctionArgs(
Session, std::move(NET)));
 
 
  146  if (!IsMemberFunction)
 
  149  return ClassParentId;
 
 
  157  return IsMemberFunction ? (1 + 
MemberFunc.getParameterCount())
 
  158                          : 
Proc.getParameterCount();
 
 
  163      IsMemberFunction ? 
MemberFunc.getReturnType() : 
Proc.getReturnType();
 
 
  170  return IsMemberFunction ? 
MemberFunc.getThisPointerAdjustment() : 0;
 
 
  174  if (!IsMemberFunction)
 
 
  184  if (!IsMemberFunction)
 
 
CVType getType(TypeIndex Index) override
 
static Error deserializeAs(CVType &CVT, T &Record)
 
NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)
 
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
 
bool isConstructorVirtualBase() const override
 
SymIndexId getClassParentId() const override
 
NativeTypeFunctionSig(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ProcedureRecord Proc)
 
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
 
bool isVolatileType() const override
 
SymIndexId getTypeId() const override
 
bool isConstType() const override
 
~NativeTypeFunctionSig() override
 
PDB_CallingConv getCallingConvention() const override
 
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
 
int32_t getThisAdjust() const override
 
bool isCxxReturnUdt() const override
 
bool isUnalignedType() const override
 
bool hasConstructor() const override
 
uint32_t getCount() const override
 
codeview::ProcedureRecord Proc
 
codeview::MemberFunctionRecord MemberFunc
 
void initialize() override
 
Expected< TpiStream & > getPDBTpiStream()
 
static std::unique_ptr< PDBSymbol > create(const IPDBSession &PDBSession, std::unique_ptr< IPDBRawSymbol > RawSymbol)
 
codeview::LazyRandomTypeCollection & typeCollection()
 
This class implements an extremely fast bulk output stream that can only output to a stream.
 
CVRecord< TypeLeafKind > CVType
 
@ ConstructorWithVirtualBases
 
void dumpSymbolField(raw_ostream &OS, StringRef Name, T Value, int Indent)
 
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
 
LLVM_ABI void dumpSymbolIdField(raw_ostream &OS, StringRef Name, SymIndexId Value, int Indent, const IPDBSession &Session, PdbSymbolIdField FieldId, PdbSymbolIdField ShowFlags, PdbSymbolIdField RecurseFlags)
 
codeview::CallingConvention PDB_CallingConv
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
 
This is an optimization pass for GlobalISel generic memory operations.
 
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
 
void cantFail(Error Err, const char *Msg=nullptr)
Report a fatal error if Err is a failure value.
 
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
 
LLVMAttributeRef wrap(Attribute Attr)
 
Implement std::hash so that hash_code can be used in STL containers.