1 //===- NativeTypeBuiltin.cpp -------------------------------------- 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 #include "llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h"
10 #include "llvm/Support/FormatVariadic.h"
11
12 using namespace llvm;
13 using namespace llvm::codeview;
14 using namespace llvm::pdb;
15
NativeTypeBuiltin(NativeSession & PDBSession,SymIndexId Id,ModifierOptions Mods,PDB_BuiltinType T,uint64_t L)16 NativeTypeBuiltin::NativeTypeBuiltin(NativeSession &PDBSession, SymIndexId Id,
17 ModifierOptions Mods, PDB_BuiltinType T,
18 uint64_t L)
19 : NativeRawSymbol(PDBSession, PDB_SymType::BuiltinType, Id),
20 Session(PDBSession), Mods(Mods), Type(T), Length(L) {}
21
~NativeTypeBuiltin()22 NativeTypeBuiltin::~NativeTypeBuiltin() {}
23
dump(raw_ostream & OS,int Indent,PdbSymbolIdField ShowIdFields,PdbSymbolIdField RecurseIdFields) const24 void NativeTypeBuiltin::dump(raw_ostream &OS, int Indent,
25 PdbSymbolIdField ShowIdFields,
26 PdbSymbolIdField RecurseIdFields) const {}
27
getSymTag() const28 PDB_SymType NativeTypeBuiltin::getSymTag() const {
29 return PDB_SymType::BuiltinType;
30 }
31
getBuiltinType() const32 PDB_BuiltinType NativeTypeBuiltin::getBuiltinType() const { return Type; }
33
isConstType() const34 bool NativeTypeBuiltin::isConstType() const {
35 return (Mods & ModifierOptions::Const) != ModifierOptions::None;
36 }
37
getLength() const38 uint64_t NativeTypeBuiltin::getLength() const { return Length; }
39
isUnalignedType() const40 bool NativeTypeBuiltin::isUnalignedType() const {
41 return (Mods & ModifierOptions::Unaligned) != ModifierOptions::None;
42 }
43
isVolatileType() const44 bool NativeTypeBuiltin::isVolatileType() const {
45 return (Mods & ModifierOptions::Volatile) != ModifierOptions::None;
46 }
47