1343171Sdim//===- NativeTypeArray.h ------------------------------------------ C++ -*-===// 2343171Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6343171Sdim// 7343171Sdim//===----------------------------------------------------------------------===// 8343171Sdim 9343171Sdim#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEARRAY_H 10343171Sdim#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVETYPEARRAY_H 11343171Sdim 12343171Sdim#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" 13343171Sdim 14343171Sdim#include "llvm/DebugInfo/CodeView/TypeRecord.h" 15343171Sdim#include "llvm/DebugInfo/PDB/PDBTypes.h" 16343171Sdim 17343171Sdimnamespace llvm { 18343171Sdimnamespace pdb { 19343171Sdim 20343171Sdimclass NativeSession; 21343171Sdim 22343171Sdimclass NativeTypeArray : public NativeRawSymbol { 23343171Sdimpublic: 24343171Sdim NativeTypeArray(NativeSession &Session, SymIndexId Id, codeview::TypeIndex TI, 25343171Sdim codeview::ArrayRecord Record); 26343171Sdim ~NativeTypeArray() override; 27343171Sdim 28343171Sdim void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, 29343171Sdim PdbSymbolIdField RecurseIdFields) const override; 30343171Sdim 31343171Sdim SymIndexId getArrayIndexTypeId() const override; 32343171Sdim 33343171Sdim bool isConstType() const override; 34343171Sdim bool isUnalignedType() const override; 35343171Sdim bool isVolatileType() const override; 36343171Sdim 37343171Sdim uint32_t getCount() const override; 38343171Sdim SymIndexId getTypeId() const override; 39343171Sdim uint64_t getLength() const override; 40343171Sdim 41343171Sdimprotected: 42343171Sdim codeview::ArrayRecord Record; 43343171Sdim codeview::TypeIndex Index; 44343171Sdim}; 45343171Sdim 46343171Sdim} // namespace pdb 47343171Sdim} // namespace llvm 48343171Sdim 49343171Sdim#endif 50