LLVM  15.0.0git
NativeTypeUDT.h
Go to the documentation of this file.
1 //===- NativeTypeUDT.h - info about class/struct type ------------*- 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_NATIVETYPEUDT_H
10 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEUDT_H
11 
12 #include "llvm/ADT/Optional.h"
18 
19 namespace llvm {
20 
21 class raw_ostream;
22 namespace pdb {
23 class NativeSession;
24 
26 public:
29 
32 
35  codeview::ModifierRecord Modifier);
36 
37  ~NativeTypeUDT() override;
38 
39  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
40  PdbSymbolIdField RecurseIdFields) const override;
41 
42  std::string getName() const override;
43  SymIndexId getLexicalParentId() const override;
44  SymIndexId getUnmodifiedTypeId() const override;
45  SymIndexId getVirtualTableShapeId() const override;
46  uint64_t getLength() const override;
47  PDB_UdtType getUdtKind() const override;
48  bool hasConstructor() const override;
49  bool isConstType() const override;
50  bool hasAssignmentOperator() const override;
51  bool hasCastOperator() const override;
52  bool hasNestedTypes() const override;
53  bool hasOverloadedOperator() const override;
54  bool isInterfaceUdt() const override;
55  bool isIntrinsic() const override;
56  bool isNested() const override;
57  bool isPacked() const override;
58  bool isRefUdt() const override;
59  bool isScoped() const override;
60  bool isValueUdt() const override;
61  bool isUnalignedType() const override;
62  bool isVolatileType() const override;
63 
64 protected:
66 
72 };
73 
74 } // namespace pdb
75 } // namespace llvm
76 
77 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEUDT_H
llvm::pdb::NativeTypeUDT::isRefUdt
bool isRefUdt() const override
Definition: NativeTypeUDT.cpp:198
llvm::codeview::TagRecord
Definition: TypeRecord.h:416
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::pdb::NativeTypeUDT::isPacked
bool isPacked() const override
Definition: NativeTypeUDT.cpp:191
Optional.h
llvm::pdb::NativeTypeUDT::hasOverloadedOperator
bool hasOverloadedOperator() const override
Definition: NativeTypeUDT.cpp:167
IPDBRawSymbol.h
llvm::pdb::NativeTypeUDT
Definition: NativeTypeUDT.h:25
llvm::pdb::NativeTypeUDT::isConstType
bool isConstType() const override
Definition: NativeTypeUDT.cpp:136
llvm::pdb::NativeTypeUDT::isNested
bool isNested() const override
Definition: NativeTypeUDT.cpp:184
llvm::pdb::PDB_UdtType
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:310
llvm::pdb::NativeTypeUDT::Modifiers
Optional< codeview::ModifierRecord > Modifiers
Definition: NativeTypeUDT.h:71
llvm::pdb::NativeTypeUDT::getName
std::string getName() const override
Definition: NativeTypeUDT.cpp:74
llvm::Optional
Definition: APInt.h:33
llvm::pdb::NativeTypeUDT::isInterfaceUdt
bool isInterfaceUdt() const override
Definition: NativeTypeUDT.cpp:175
llvm::pdb::NativeTypeUDT::getUnmodifiedTypeId
SymIndexId getUnmodifiedTypeId() const override
Definition: NativeTypeUDT.cpp:83
llvm::pdb::NativeTypeUDT::getLength
uint64_t getLength() const override
Definition: NativeTypeUDT.cpp:100
llvm::pdb::NativeTypeUDT::dump
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
Definition: NativeTypeUDT.cpp:38
llvm::pdb::NativeTypeUDT::getUdtKind
PDB_UdtType getUdtKind() const override
Definition: NativeTypeUDT.cpp:110
llvm::pdb::NativeTypeUDT::NativeTypeUDT
NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ClassRecord Class)
Definition: NativeTypeUDT.cpp:20
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::ModifierRecord
Definition: TypeRecord.h:130
PDBTypes.h
llvm::pdb::NativeTypeUDT::~NativeTypeUDT
~NativeTypeUDT() override
llvm::pdb::NativeTypeUDT::Class
Optional< codeview::ClassRecord > Class
Definition: NativeTypeUDT.h:67
llvm::pdb::NativeTypeUDT::isVolatileType
bool isVolatileType() const override
Definition: NativeTypeUDT.cpp:216
uint64_t
TypeRecord.h
llvm::pdb::NativeTypeUDT::hasAssignmentOperator
bool hasAssignmentOperator() const override
Definition: NativeTypeUDT.cpp:143
llvm::pdb::NativeTypeUDT::isScoped
bool isScoped() const override
Definition: NativeTypeUDT.cpp:200
llvm::pdb::NativeTypeUDT::Tag
codeview::TagRecord * Tag
Definition: NativeTypeUDT.h:70
uint32_t
llvm::pdb::NativeTypeUDT::isIntrinsic
bool isIntrinsic() const override
Definition: NativeTypeUDT.cpp:177
llvm::pdb::NativeTypeUDT::Index
codeview::TypeIndex Index
Definition: NativeTypeUDT.h:65
llvm::pdb::NativeTypeUDT::getLexicalParentId
SymIndexId getLexicalParentId() const override
Definition: NativeTypeUDT.cpp:81
llvm::pdb::NativeTypeUDT::hasConstructor
bool hasConstructor() const override
Definition: NativeTypeUDT.cpp:128
llvm::codeview::UnionRecord
Definition: TypeRecord.h:498
NativeRawSymbol.h
llvm::pdb::NativeTypeUDT::hasCastOperator
bool hasCastOperator() const override
Definition: NativeTypeUDT.cpp:151
TypeIndex.h
llvm::pdb::NativeSession
Definition: NativeSession.h:32
llvm::pdb::PdbSymbolIdField
PdbSymbolIdField
Definition: IPDBRawSymbol.h:24
llvm::codeview::TypeIndex
A 32-bit type reference.
Definition: TypeIndex.h:96
llvm::pdb::NativeTypeUDT::getVirtualTableShapeId
SymIndexId getVirtualTableShapeId() const override
Definition: NativeTypeUDT.cpp:90
llvm::pdb::NativeRawSymbol::Session
NativeSession & Session
Definition: NativeRawSymbol.h:232
llvm::codeview::ClassRecord
Definition: TypeRecord.h:465
llvm::pdb::NativeTypeUDT::isUnalignedType
bool isUnalignedType() const override
Definition: NativeTypeUDT.cpp:209
llvm::AMDGPU::VGPRIndexMode::Id
Id
Definition: SIDefines.h:235
llvm::pdb::NativeTypeUDT::UnmodifiedType
NativeTypeUDT * UnmodifiedType
Definition: NativeTypeUDT.h:69
llvm::pdb::NativeRawSymbol
Definition: NativeRawSymbol.h:21
llvm::pdb::NativeTypeUDT::isValueUdt
bool isValueUdt() const override
Definition: NativeTypeUDT.cpp:207
llvm::pdb::NativeTypeUDT::Union
Optional< codeview::UnionRecord > Union
Definition: NativeTypeUDT.h:68
llvm::pdb::NativeTypeUDT::hasNestedTypes
bool hasNestedTypes() const override
Definition: NativeTypeUDT.cpp:159