LLVM  8.0.1
NativeTypeUDT.h
Go to the documentation of this file.
1 //===- NativeTypeUDT.h - info about class/struct type ------------*- C++-*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEUDT_H
11 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEUDT_H
12 
13 #include "llvm/ADT/Optional.h"
18 
19 namespace llvm {
20 namespace pdb {
21 
23 public:
26 
29 
32  codeview::ModifierRecord Modifier);
33 
34  ~NativeTypeUDT() override;
35 
36  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
37  PdbSymbolIdField RecurseIdFields) const override;
38 
39  std::string getName() const override;
40  SymIndexId getLexicalParentId() const override;
41  SymIndexId getUnmodifiedTypeId() const override;
42  SymIndexId getVirtualTableShapeId() const override;
43  uint64_t getLength() const override;
44  PDB_UdtType getUdtKind() const override;
45  bool hasConstructor() const override;
46  bool isConstType() const override;
47  bool hasAssignmentOperator() const override;
48  bool hasCastOperator() const override;
49  bool hasNestedTypes() const override;
50  bool hasOverloadedOperator() const override;
51  bool isInterfaceUdt() const override;
52  bool isIntrinsic() const override;
53  bool isNested() const override;
54  bool isPacked() const override;
55  bool isRefUdt() const override;
56  bool isScoped() const override;
57  bool isValueUdt() const override;
58  bool isUnalignedType() const override;
59  bool isVolatileType() const override;
60 
61 protected:
63 
66  NativeTypeUDT *UnmodifiedType = nullptr;
69 };
70 
71 } // namespace pdb
72 } // namespace llvm
73 
74 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEUDT_H
This class represents lattice values for constants.
Definition: AllocatorList.h:24
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:250
SymIndexId getVirtualTableShapeId() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
codeview::TypeIndex Index
Definition: NativeTypeUDT.h:62
SymIndexId getLexicalParentId() const override
Optional< codeview::ClassRecord > Class
Definition: NativeTypeUDT.h:64
bool hasNestedTypes() const override
bool isConstType() const override
codeview::TagRecord * Tag
Definition: NativeTypeUDT.h:67
A 32-bit type reference.
Definition: TypeIndex.h:96
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:65
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:66
Definition: JSON.cpp:598
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:46
Optional< codeview::ModifierRecord > Modifiers
Definition: NativeTypeUDT.h:68
bool hasAssignmentOperator() const override