1//===- NativeTypeBuiltin.h ---------------------------------------- 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_NATIVETYPEBUILTIN_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEBUILTIN_H
11
12#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
13
14#include "llvm/DebugInfo/PDB/PDBTypes.h"
15
16namespace llvm {
17namespace pdb {
18
19class NativeSession;
20
21class NativeTypeBuiltin : public NativeRawSymbol {
22public:
23 NativeTypeBuiltin(NativeSession &PDBSession, SymIndexId Id,
24 codeview::ModifierOptions Mods, PDB_BuiltinType T,
25 uint64_t L);
26 ~NativeTypeBuiltin() override;
27
28 void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
29 PdbSymbolIdField RecurseIdFields) const override;
30
31 PDB_SymType getSymTag() const override;
32
33 PDB_BuiltinType getBuiltinType() const override;
34 bool isConstType() const override;
35 uint64_t getLength() const override;
36 bool isUnalignedType() const override;
37 bool isVolatileType() const override;
38
39protected:
40 NativeSession &Session;
41 codeview::ModifierOptions Mods;
42 PDB_BuiltinType Type;
43 uint64_t Length;
44};
45
46} // namespace pdb
47} // namespace llvm
48
49#endif
50

source code of llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h