LLVM  15.0.0git
NativeTypeFunctionSig.h
Go to the documentation of this file.
1 //===- NativeTypeFunctionSig.h - info about function signature ---*- 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_NATIVE_NATIVETYPEFUNCTIONSIG_H
10 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEFUNCTIONSIG_H
11 
17 
18 namespace llvm {
19 namespace pdb {
20 
22 protected:
23  void initialize() override;
24 
25 public:
28 
32 
33  ~NativeTypeFunctionSig() override;
34 
35  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
36  PdbSymbolIdField RecurseIdFields) const override;
37 
38  std::unique_ptr<IPDBEnumSymbols>
39  findChildren(PDB_SymType Type) const override;
40 
41  SymIndexId getClassParentId() const override;
42  PDB_CallingConv getCallingConvention() const override;
43  uint32_t getCount() const override;
44  SymIndexId getTypeId() const override;
45  int32_t getThisAdjust() const override;
46  bool hasConstructor() const override;
47  bool isConstType() const override;
48  bool isConstructorVirtualBase() const override;
49  bool isCxxReturnUdt() const override;
50  bool isUnalignedType() const override;
51  bool isVolatileType() const override;
52 
53 private:
54  void initializeArgList(codeview::TypeIndex ArgListTI);
55 
56  union {
59  };
60 
61  SymIndexId ClassParentId = 0;
62  codeview::TypeIndex Index;
64  bool IsMemberFunction = false;
65 };
66 
67 } // namespace pdb
68 } // namespace llvm
69 
70 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEFUNCTIONSIG_H
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::pdb::NativeTypeFunctionSig::NativeTypeFunctionSig
NativeTypeFunctionSig(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ProcedureRecord Proc)
Definition: NativeTypeFunctionSig.cpp:77
IPDBRawSymbol.h
llvm::pdb::NativeTypeFunctionSig::isConstructorVirtualBase
bool isConstructorVirtualBase() const override
Definition: NativeTypeFunctionSig.cpp:183
llvm::pdb::NativeTypeFunctionSig::initialize
void initialize() override
Definition: NativeTypeFunctionSig.cpp:90
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
llvm::pdb::NativeTypeFunctionSig::MemberFunc
codeview::MemberFunctionRecord MemberFunc
Definition: NativeTypeFunctionSig.h:57
llvm::pdb::NativeTypeFunctionSig::getCallingConvention
PDB_CallingConv getCallingConvention() const override
Definition: NativeTypeFunctionSig.cpp:152
llvm::pdb::PDB_SymType
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:243
llvm::codeview::ArgListRecord
Definition: TypeRecord.h:236
llvm::pdb::NativeTypeFunctionSig::isUnalignedType
bool isUnalignedType() const override
Definition: NativeTypeFunctionSig.cpp:198
llvm::pdb::SymIndexId
uint32_t SymIndexId
Definition: PDBTypes.h:26
llvm::pdb::NativeTypeFunctionSig::dump
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
Definition: NativeTypeFunctionSig.cpp:109
llvm::pdb::NativeTypeFunctionSig::getThisAdjust
int32_t getThisAdjust() const override
Definition: NativeTypeFunctionSig.cpp:169
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:54
llvm::codeview::MemberFunctionRecord
Definition: TypeRecord.h:171
PDBTypes.h
llvm::pdb::NativeTypeFunctionSig::Proc
codeview::ProcedureRecord Proc
Definition: NativeTypeFunctionSig.h:58
llvm::pdb::NativeTypeFunctionSig::findChildren
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
Definition: NativeTypeFunctionSig.cpp:135
llvm::pdb::NativeTypeFunctionSig::hasConstructor
bool hasConstructor() const override
Definition: NativeTypeFunctionSig.cpp:173
llvm::pdb::NativeTypeFunctionSig::~NativeTypeFunctionSig
~NativeTypeFunctionSig() override
TypeRecord.h
llvm::pdb::NativeTypeFunctionSig
Definition: NativeTypeFunctionSig.h:21
llvm::pdb::NativeTypeFunctionSig::isConstType
bool isConstType() const override
Definition: NativeTypeFunctionSig.cpp:181
uint32_t
llvm::pdb::NativeTypeFunctionSig::isCxxReturnUdt
bool isCxxReturnUdt() const override
Definition: NativeTypeFunctionSig.cpp:192
llvm::codeview::ProcedureRecord
Definition: TypeRecord.h:146
llvm::pdb::NativeTypeFunctionSig::getCount
uint32_t getCount() const override
Definition: NativeTypeFunctionSig.cpp:156
llvm::pdb::NativeTypeFunctionSig::getClassParentId
SymIndexId getClassParentId() const override
Definition: NativeTypeFunctionSig.cpp:145
NativeRawSymbol.h
TypeIndex.h
llvm::pdb::NativeSession
Definition: NativeSession.h:32
llvm::pdb::PdbSymbolIdField
PdbSymbolIdField
Definition: IPDBRawSymbol.h:24
llvm::codeview::CallingConvention
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition: CodeView.h:178
llvm::codeview::TypeIndex
A 32-bit type reference.
Definition: TypeIndex.h:96
llvm::pdb::NativeTypeFunctionSig::isVolatileType
bool isVolatileType() const override
Definition: NativeTypeFunctionSig.cpp:200
llvm::pdb::NativeRawSymbol::Session
NativeSession & Session
Definition: NativeRawSymbol.h:232
llvm::AMDGPU::VGPRIndexMode::Id
Id
Definition: SIDefines.h:235
llvm::pdb::NativeTypeFunctionSig::getTypeId
SymIndexId getTypeId() const override
Definition: NativeTypeFunctionSig.cpp:161
llvm::pdb::NativeRawSymbol
Definition: NativeRawSymbol.h:21