LLVM 22.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
A 32-bit type reference.
Definition TypeIndex.h:97
NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, SymIndexId SymbolId)
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
SymIndexId getUnmodifiedTypeId() const override
NativeTypeUDT(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::ClassRecord Class)
SymIndexId getLexicalParentId() const override
std::optional< codeview::UnionRecord > Union
std::optional< codeview::ClassRecord > Class
bool hasAssignmentOperator() const override
bool hasCastOperator() const override
std::optional< codeview::ModifierRecord > Modifiers
codeview::TagRecord * Tag
bool hasConstructor() const override
std::string getName() const override
codeview::TypeIndex Index
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:53
uint32_t SymIndexId
Definition PDBTypes.h:26
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.