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 
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 
22 NativeTypeBuiltin::~NativeTypeBuiltin() {}
23 
24 void NativeTypeBuiltin::dump(raw_ostream &OS, int Indent,
25                              PdbSymbolIdField ShowIdFields,
26                              PdbSymbolIdField RecurseIdFields) const {}
27 
28 PDB_SymType NativeTypeBuiltin::getSymTag() const {
29   return PDB_SymType::BuiltinType;
30 }
31 
32 PDB_BuiltinType NativeTypeBuiltin::getBuiltinType() const { return Type; }
33 
34 bool NativeTypeBuiltin::isConstType() const {
35   return (Mods & ModifierOptions::Const) != ModifierOptions::None;
36 }
37 
38 uint64_t NativeTypeBuiltin::getLength() const { return Length; }
39 
40 bool NativeTypeBuiltin::isUnalignedType() const {
41   return (Mods & ModifierOptions::Unaligned) != ModifierOptions::None;
42 }
43 
44 bool NativeTypeBuiltin::isVolatileType() const {
45   return (Mods & ModifierOptions::Volatile) != ModifierOptions::None;
46 }
47