LLVM  14.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 
12 #include "llvm/ADT/SmallVector.h"
17 
18 namespace llvm {
19 namespace pdb {
20 
21 class NativeTypeUDT;
22 
24 protected:
25  void initialize() override;
26 
27 public:
30 
34 
35  ~NativeTypeFunctionSig() override;
36 
37  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
38  PdbSymbolIdField RecurseIdFields) const override;
39 
40  std::unique_ptr<IPDBEnumSymbols>
41  findChildren(PDB_SymType Type) const override;
42 
43  SymIndexId getClassParentId() const override;
44  PDB_CallingConv getCallingConvention() const override;
45  uint32_t getCount() const override;
46  SymIndexId getTypeId() const override;
47  int32_t getThisAdjust() const override;
48  bool hasConstructor() const override;
49  bool isConstType() const override;
50  bool isConstructorVirtualBase() const override;
51  bool isCxxReturnUdt() const override;
52  bool isUnalignedType() const override;
53  bool isVolatileType() const override;
54 
55 private:
56  void initializeArgList(codeview::TypeIndex ArgListTI);
57 
58  union {
61  };
62 
63  SymIndexId ClassParentId = 0;
64  codeview::TypeIndex Index;
66  bool IsMemberFunction = false;
67 };
68 
69 } // namespace pdb
70 } // namespace llvm
71 
72 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEFUNCTIONSIG_H
llvm
This file implements support for optimizing divisions by a constant.
Definition: AllocatorList.h:23
llvm::pdb::NativeTypeFunctionSig::NativeTypeFunctionSig
NativeTypeFunctionSig(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ProcedureRecord Proc)
Definition: NativeTypeFunctionSig.cpp:76
llvm::pdb::NativeTypeFunctionSig::isConstructorVirtualBase
bool isConstructorVirtualBase() const override
Definition: NativeTypeFunctionSig.cpp:182
llvm::pdb::NativeTypeFunctionSig::initialize
void initialize() override
Definition: NativeTypeFunctionSig.cpp:89
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:59
llvm::pdb::NativeTypeFunctionSig::getCallingConvention
PDB_CallingConv getCallingConvention() const override
Definition: NativeTypeFunctionSig.cpp:151
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:235
llvm::pdb::NativeTypeFunctionSig::isUnalignedType
bool isUnalignedType() const override
Definition: NativeTypeFunctionSig.cpp:197
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:108
llvm::pdb::NativeTypeFunctionSig::getThisAdjust
int32_t getThisAdjust() const override
Definition: NativeTypeFunctionSig.cpp:168
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:53
CodeView.h
llvm::codeview::MemberFunctionRecord
Definition: TypeRecord.h:170
llvm::pdb::NativeTypeFunctionSig::Proc
codeview::ProcedureRecord Proc
Definition: NativeTypeFunctionSig.h:60
llvm::pdb::NativeTypeFunctionSig::findChildren
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
Definition: NativeTypeFunctionSig.cpp:134
llvm::pdb::NativeTypeFunctionSig::hasConstructor
bool hasConstructor() const override
Definition: NativeTypeFunctionSig.cpp:172
llvm::pdb::NativeTypeFunctionSig::~NativeTypeFunctionSig
~NativeTypeFunctionSig() override
Definition: NativeTypeFunctionSig.cpp:99
TypeRecord.h
llvm::pdb::NativeTypeFunctionSig
Definition: NativeTypeFunctionSig.h:23
llvm::pdb::NativeTypeFunctionSig::isConstType
bool isConstType() const override
Definition: NativeTypeFunctionSig.cpp:180
uint32_t
llvm::pdb::NativeTypeFunctionSig::isCxxReturnUdt
bool isCxxReturnUdt() const override
Definition: NativeTypeFunctionSig.cpp:191
llvm::codeview::ProcedureRecord
Definition: TypeRecord.h:145
llvm::pdb::NativeTypeFunctionSig::getCount
uint32_t getCount() const override
Definition: NativeTypeFunctionSig.cpp:155
llvm::pdb::NativeTypeFunctionSig::getClassParentId
SymIndexId getClassParentId() const override
Definition: NativeTypeFunctionSig.cpp:144
NativeRawSymbol.h
llvm::pdb::NativeSession
Definition: NativeSession.h:28
llvm::pdb::PdbSymbolIdField
PdbSymbolIdField
Definition: IPDBRawSymbol.h:24
SmallVector.h
llvm::codeview::CallingConvention
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition: CodeView.h:176
llvm::codeview::TypeIndex
A 32-bit type reference.
Definition: TypeIndex.h:96
llvm::pdb::NativeTypeFunctionSig::isVolatileType
bool isVolatileType() const override
Definition: NativeTypeFunctionSig.cpp:199
llvm::pdb::NativeRawSymbol::Session
NativeSession & Session
Definition: NativeRawSymbol.h:232
llvm::AMDGPU::VGPRIndexMode::Id
Id
Definition: SIDefines.h:231
llvm::pdb::NativeTypeFunctionSig::getTypeId
SymIndexId getTypeId() const override
Definition: NativeTypeFunctionSig.cpp:160
llvm::pdb::NativeRawSymbol
Definition: NativeRawSymbol.h:21
NativeSession.h