LLVM  9.0.0svn
NativeTypePointer.h
Go to the documentation of this file.
1 //===- NativeTypePointer.h - info about pointer 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_NATIVETYPEPOINTER_H
10 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEPOINTER_H
11 
12 #include "llvm/ADT/Optional.h"
17 
18 namespace llvm {
19 namespace pdb {
20 
22 public:
23  // Create a pointer record for a simple type.
26 
27  // Create a pointer record for a non-simple type.
30  ~NativeTypePointer() override;
31 
32  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
33  PdbSymbolIdField RecurseIdFields) const override;
34 
35  SymIndexId getClassParentId() const override;
36  bool isConstType() const override;
37  uint64_t getLength() const override;
38  bool isReference() const override;
39  bool isRValueReference() const override;
40  bool isPointerToDataMember() const override;
41  bool isPointerToMemberFunction() const override;
42  SymIndexId getTypeId() const override;
43  bool isRestrictedType() const override;
44  bool isVolatileType() const override;
45  bool isUnalignedType() const override;
46 
47  bool isSingleInheritance() const override;
48  bool isMultipleInheritance() const override;
49  bool isVirtualInheritance() const override;
50 
51 protected:
52  bool isMemberPointer() const;
55 };
56 
57 } // namespace pdb
58 } // namespace llvm
59 
60 #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:23
SymIndexId getTypeId() const override
A 32-bit type reference.
Definition: TypeIndex.h:95
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
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:45
bool isPointerToMemberFunction() const override
void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, PdbSymbolIdField RecurseIdFields) const override