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