LLVM  8.0.1
NativeTypePointer.h
Go to the documentation of this file.
1 //===- NativeTypePointer.h - info about pointer 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_NATIVETYPEPOINTER_H
11 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEPOINTER_H
12 
13 #include "llvm/ADT/Optional.h"
18 
19 namespace llvm {
20 namespace pdb {
21 
23 public:
24  // Create a pointer record for a simple type.
27 
28  // Create a pointer record for a non-simple type.
31  ~NativeTypePointer() override;
32 
33  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
34  PdbSymbolIdField RecurseIdFields) const override;
35 
36  SymIndexId getClassParentId() const override;
37  bool isConstType() const override;
38  uint64_t getLength() const override;
39  bool isReference() const override;
40  bool isRValueReference() const override;
41  bool isPointerToDataMember() const override;
42  bool isPointerToMemberFunction() const override;
43  SymIndexId getTypeId() const override;
44  bool isRestrictedType() const override;
45  bool isVolatileType() const override;
46  bool isUnalignedType() const override;
47 
48  bool isSingleInheritance() const override;
49  bool isMultipleInheritance() const override;
50  bool isVirtualInheritance() const override;
51 
52 protected:
53  bool isMemberPointer() const;
56 };
57 
58 } // namespace pdb
59 } // namespace llvm
60 
61 #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEPOINTER_H
NativeTypePointer(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI)
uint64_t getLength() const override
bool isUnalignedType() const override
This class represents lattice values for constants.
Definition: AllocatorList.h:24
SymIndexId getTypeId() const override
A 32-bit type reference.
Definition: TypeIndex.h:96
Optional< codeview::PointerRecord > Record
bool isMultipleInheritance() const override
bool isRestrictedType() const override
SymIndexId getClassParentId() const override
bool isVirtualInheritance() const override
bool isReference() const override
bool isRValueReference() const override
bool isConstType() const override
Definition: JSON.cpp:598
bool isVolatileType() const override
bool isSingleInheritance() const override
bool isPointerToDataMember() const override
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:46
bool isPointerToMemberFunction() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override