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