LLVM 20.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
17
18namespace llvm {
19
20class raw_ostream;
21namespace pdb {
22class NativeSession;
23
25public:
28
31
35
36 ~NativeTypeUDT() override;
37
38 void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
39 PdbSymbolIdField RecurseIdFields) const override;
40
41 std::string getName() const override;
42 SymIndexId getLexicalParentId() const override;
43 SymIndexId getUnmodifiedTypeId() const override;
44 SymIndexId getVirtualTableShapeId() const override;
45 uint64_t getLength() const override;
46 PDB_UdtType getUdtKind() const override;
47 bool hasConstructor() const override;
48 bool isConstType() const override;
49 bool hasAssignmentOperator() const override;
50 bool hasCastOperator() const override;
51 bool hasNestedTypes() const override;
52 bool hasOverloadedOperator() const override;
53 bool isInterfaceUdt() const override;
54 bool isIntrinsic() const override;
55 bool isNested() const override;
56 bool isPacked() const override;
57 bool isRefUdt() const override;
58 bool isScoped() const override;
59 bool isValueUdt() const override;
60 bool isUnalignedType() const override;
61 bool isVolatileType() const override;
62
63protected:
65
66 std::optional<codeview::ClassRecord> Class;
67 std::optional<codeview::UnionRecord> Union;
70 std::optional<codeview::ModifierRecord> Modifiers;
71};
72
73} // namespace pdb
74} // namespace llvm
75
76#endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEUDT_H
raw_pwrite_stream & OS
A 32-bit type reference.
Definition: TypeIndex.h:96
PDB_UdtType getUdtKind() const override
SymIndexId getVirtualTableShapeId() const override
bool hasNestedTypes() const override
bool isPacked() const override
bool isRefUdt() const override
bool isUnalignedType() const override
uint64_t getLength() const override
bool isVolatileType() const override
bool isValueUdt() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
bool isScoped() const override
NativeTypeUDT * UnmodifiedType
Definition: NativeTypeUDT.h:68
SymIndexId getUnmodifiedTypeId() const override
SymIndexId getLexicalParentId() const override
std::optional< codeview::UnionRecord > Union
Definition: NativeTypeUDT.h:67
std::optional< codeview::ClassRecord > Class
Definition: NativeTypeUDT.h:66
bool hasAssignmentOperator() const override
bool hasCastOperator() const override
std::optional< codeview::ModifierRecord > Modifiers
Definition: NativeTypeUDT.h:70
codeview::TagRecord * Tag
Definition: NativeTypeUDT.h:69
bool hasConstructor() const override
std::string getName() const override
codeview::TypeIndex Index
Definition: NativeTypeUDT.h:64
bool isConstType() const override
bool hasOverloadedOperator() const override
bool isNested() const override
bool isIntrinsic() const override
bool isInterfaceUdt() const override
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:52
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:310
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18