LLVM  8.0.1
NativeTypeEnum.h
Go to the documentation of this file.
1 //===- NativeTypeEnum.h - info about enum 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_NATIVETYPEENUM_H
11 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEENUM_H
12 
13 #include "llvm/ADT/Optional.h"
18 
19 namespace llvm {
20 namespace pdb {
21 
22 class NativeTypeBuiltin;
23 
25 public:
28 
31  codeview::ModifierRecord Modifier);
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 
65 protected:
68  NativeTypeEnum *UnmodifiedType = nullptr;
70 };
71 
72 } // namespace pdb
73 } // namespace llvm
74 
75 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEENUM_H
bool isVolatileType() const override
This class represents lattice values for constants.
Definition: AllocatorList.h:24
std::string getName() const override
NativeTypeEnum(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, codeview::EnumRecord Record)
const codeview::EnumRecord & getEnumRecord() const
NativeTypeEnum * UnmodifiedType
bool hasConstructor() const override
const NativeTypeBuiltin & getUnderlyingBuiltinType() const
PDB_SymType getSymTag() const override
PDB_BuiltinType getBuiltinType() const override
SymIndexId getUnmodifiedTypeId() const override
SymIndexId getTypeId() const override
Optional< codeview::ModifierRecord > Modifiers
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override
A 32-bit type reference.
Definition: TypeIndex.h:96
bool isScoped() const override
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx.
Definition: PDBTypes.h:183
bool isInterfaceUdt() const override
bool isConstType() const override
The instances of the Type class are immutable: once they are created, they are never changed...
Definition: Type.h:46
bool isValueUdt() const override
bool hasAssignmentOperator() const override
bool isNested() const override
bool hasNestedTypes() const override
bool hasOverloadedOperator() const override
bool hasCastOperator() const override
PDB_BuiltinType
These values correspond to the Basictype enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/4szdtzc3.aspx.
Definition: PDBTypes.h:275
codeview::TypeIndex Index
bool isPacked() const override
Definition: JSON.cpp:598
uint64_t getLength() const override
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:46
bool isIntrinsic() const override
Optional< codeview::EnumRecord > Record
bool isRefUdt() const override
bool isUnalignedType() const override