LLVM  10.0.0svn
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/Optional.h"
13 #include "llvm/ADT/SmallVector.h"
18 
19 namespace llvm {
20 namespace pdb {
21 
22 class NativeTypeUDT;
23 
25 protected:
26  void initialize() override;
27 
28 public:
31 
35 
36  ~NativeTypeFunctionSig() override;
37 
38  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
39  PdbSymbolIdField RecurseIdFields) const override;
40 
41  std::unique_ptr<IPDBEnumSymbols>
42  findChildren(PDB_SymType Type) const override;
43 
44  SymIndexId getClassParentId() const override;
45  PDB_CallingConv getCallingConvention() const override;
46  uint32_t getCount() const override;
47  SymIndexId getTypeId() const override;
48  int32_t getThisAdjust() const override;
49  bool hasConstructor() const override;
50  bool isConstType() const override;
51  bool isConstructorVirtualBase() const override;
52  bool isCxxReturnUdt() const override;
53  bool isUnalignedType() const override;
54  bool isVolatileType() const override;
55 
56 private:
57  void initializeArgList(codeview::TypeIndex ArgListTI);
58 
59  union {
62  };
63 
64  SymIndexId ClassParentId = 0;
65  codeview::TypeIndex Index;
67  bool IsMemberFunction = false;
68 };
69 
70 } // namespace pdb
71 } // namespace llvm
72 
73 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEPOINTER_H
PDB_CallingConv getCallingConvention() const override
This class represents lattice values for constants.
Definition: AllocatorList.h:23
NativeTypeFunctionSig(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ProcedureRecord Proc)
codeview::MemberFunctionRecord MemberFunc
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
A 32-bit type reference.
Definition: TypeIndex.h:95
SymIndexId getTypeId() const override
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:241
The instances of the Type class are immutable: once they are created, they are never changed...
Definition: Type.h:46
SymIndexId getClassParentId() const override
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition: CodeView.h:173
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:45
bool isConstructorVirtualBase() const override