1 //===- NativeTypeBuiltin.cpp -------------------------------------- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #include "llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h"
11 #include "llvm/Support/FormatVariadic.h"
12 
13 using namespace llvm;
14 using namespace llvm::codeview;
15 using namespace llvm::pdb;
16 
NativeTypeBuiltin(NativeSession & PDBSession,SymIndexId Id,ModifierOptions Mods,PDB_BuiltinType T,uint64_t L)17 NativeTypeBuiltin::NativeTypeBuiltin(NativeSession &PDBSession, SymIndexId Id,
18                                      ModifierOptions Mods, PDB_BuiltinType T,
19                                      uint64_t L)
20     : NativeRawSymbol(PDBSession, PDB_SymType::BuiltinType, Id),
21       Session(PDBSession), Mods(Mods), Type(T), Length(L) {}
22 
~NativeTypeBuiltin()23 NativeTypeBuiltin::~NativeTypeBuiltin() {}
24 
dump(raw_ostream & OS,int Indent,PdbSymbolIdField ShowIdFields,PdbSymbolIdField RecurseIdFields) const25 void NativeTypeBuiltin::dump(raw_ostream &OS, int Indent,
26                              PdbSymbolIdField ShowIdFields,
27                              PdbSymbolIdField RecurseIdFields) const {}
28 
getSymTag() const29 PDB_SymType NativeTypeBuiltin::getSymTag() const {
30   return PDB_SymType::BuiltinType;
31 }
32 
getBuiltinType() const33 PDB_BuiltinType NativeTypeBuiltin::getBuiltinType() const { return Type; }
34 
isConstType() const35 bool NativeTypeBuiltin::isConstType() const {
36   return (Mods & ModifierOptions::Const) != ModifierOptions::None;
37 }
38 
getLength() const39 uint64_t NativeTypeBuiltin::getLength() const { return Length; }
40 
isUnalignedType() const41 bool NativeTypeBuiltin::isUnalignedType() const {
42   return (Mods & ModifierOptions::Unaligned) != ModifierOptions::None;
43 }
44 
isVolatileType() const45 bool NativeTypeBuiltin::isVolatileType() const {
46   return (Mods & ModifierOptions::Volatile) != ModifierOptions::None;
47 }
48