LLVM 20.0.0git
NativeTypeEnum.h
Go to the documentation of this file.
1//===- NativeTypeEnum.h - info about enum 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_NATIVETYPEENUM_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEENUM_H
11
17
18namespace llvm {
19class raw_ostream;
20namespace pdb {
21
22class NativeTypeBuiltin;
23
25public:
28
32 ~NativeTypeEnum() override;
33
34 void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
35 PdbSymbolIdField RecurseIdFields) const override;
36
37 std::unique_ptr<IPDBEnumSymbols>
38 findChildren(PDB_SymType Type) const override;
39
40 PDB_BuiltinType getBuiltinType() const override;
41 PDB_SymType getSymTag() const override;
42 SymIndexId getUnmodifiedTypeId() const override;
43 bool hasConstructor() const override;
44 bool hasAssignmentOperator() const override;
45 bool hasCastOperator() const override;
46 uint64_t getLength() const override;
47 std::string getName() const override;
48 bool isConstType() const override;
49 bool isVolatileType() const override;
50 bool isUnalignedType() const override;
51 bool isNested() const override;
52 bool hasOverloadedOperator() const override;
53 bool hasNestedTypes() const override;
54 bool isIntrinsic() const override;
55 bool isPacked() const override;
56 bool isScoped() const override;
57 SymIndexId getTypeId() const override;
58 bool isRefUdt() const override;
59 bool isValueUdt() const override;
60 bool isInterfaceUdt() const override;
61
63 const codeview::EnumRecord &getEnumRecord() const { return *Record; }
64
65protected:
67 std::optional<codeview::EnumRecord> Record;
69 std::optional<codeview::ModifierRecord> Modifiers;
70};
71
72} // namespace pdb
73} // namespace llvm
74
75#endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEENUM_H
raw_pwrite_stream & OS
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
A 32-bit type reference.
Definition: TypeIndex.h:96
codeview::TypeIndex Index
bool isVolatileType() const override
bool isScoped() const override
bool hasOverloadedOperator() const override
bool isIntrinsic() const override
bool isPacked() const override
std::string getName() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
bool hasAssignmentOperator() const override
bool isNested() const override
bool isValueUdt() const override
bool isUnalignedType() const override
bool isInterfaceUdt() const override
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
bool hasCastOperator() const override
PDB_BuiltinType getBuiltinType() const override
bool hasConstructor() const override
SymIndexId getTypeId() const override
bool isConstType() const override
const codeview::EnumRecord & getEnumRecord() const
const NativeTypeBuiltin & getUnderlyingBuiltinType() const
bool hasNestedTypes() const override
PDB_SymType getSymTag() const override
SymIndexId getUnmodifiedTypeId() const override
std::optional< codeview::ModifierRecord > Modifiers
NativeTypeEnum * UnmodifiedType
uint64_t getLength() const override
std::optional< codeview::EnumRecord > Record
bool isRefUdt() const override
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition: raw_ostream.h:52
PDB_BuiltinType
These values correspond to the Basictype enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:335
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:243
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18