LLVM  6.0.0svn
NativeEnumSymbol.h
Go to the documentation of this file.
1 //===- NativeEnumSymbol.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_NATIVEENUMSYMBOL_H
11 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEENUMSYMBOL_H
12 
17 
18 namespace llvm {
19 namespace pdb {
20 
23 public:
25  const codeview::CVType &CV);
26  ~NativeEnumSymbol() override;
27 
28  std::unique_ptr<NativeRawSymbol> clone() const override;
29 
30  std::unique_ptr<IPDBEnumSymbols>
31  findChildren(PDB_SymType Type) const override;
32 
34  codeview::EnumRecord &Record) override;
36  codeview::EnumeratorRecord &Record) override;
37 
38  PDB_SymType getSymTag() const override;
39  uint32_t getClassParentId() const override;
40  uint32_t getUnmodifiedTypeId() const override;
41  bool hasConstructor() const override;
42  bool hasAssignmentOperator() const override;
43  bool hasCastOperator() const override;
44  uint64_t getLength() const override;
45  std::string getName() const override;
46  bool isNested() const override;
47  bool hasOverloadedOperator() const override;
48  bool isPacked() const override;
49  bool isScoped() const override;
50  uint32_t getTypeId() const override;
51 
52 protected:
55 };
56 
57 } // namespace pdb
58 } // namespace llvm
59 
60 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVEENUMSYMBOL_H
Error visitKnownRecord(codeview::CVType &CVR, codeview::EnumRecord &Record) override
Compute iterated dominance frontiers using a linear time algorithm.
Definition: AllocatorList.h:24
bool hasAssignmentOperator() const override
uint64_t getLength() const override
std::unique_ptr< IPDBEnumSymbols > findChildren(PDB_SymType Type) const override
std::unique_ptr< NativeRawSymbol > clone() 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:162
PDB_SymType getSymTag() const override
bool hasConstructor() const override
bool isPacked() const override
The instances of the Type class are immutable: once they are created, they are never changed...
Definition: Type.h:46
bool hasOverloadedOperator() const override
bool isNested() const override
uint32_t getUnmodifiedTypeId() const override
uint32_t getClassParentId() const override
codeview::EnumRecord Record
bool isScoped() const override
std::string getName() const override
bool hasCastOperator() const override
Error visitKnownMember(codeview::CVMemberRecord &CVM, codeview::EnumeratorRecord &Record) override
NativeEnumSymbol(NativeSession &Session, SymIndexId Id, const codeview::CVType &CV)
Lightweight error class with error context and mandatory checking.
Definition: Error.h:156
uint32_t getTypeId() const override