1//===- DebugSymbolRVASubsection.cpp ---------------------------------------===// 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/CodeView/DebugSymbolRVASubsection.h" 10#include "llvm/ADT/ArrayRef.h" 11#include "llvm/DebugInfo/CodeView/CodeView.h" 12#include "llvm/Support/BinaryStreamReader.h" 13#include "llvm/Support/BinaryStreamWriter.h" 14#include <cstdint> 15 16using namespace llvm; 17using namespace llvm::codeview; 18 19DebugSymbolRVASubsectionRef::DebugSymbolRVASubsectionRef() 20 : DebugSubsectionRef(DebugSubsectionKind::CoffSymbolRVA) {} 21 22Error DebugSymbolRVASubsectionRef::initialize(BinaryStreamReader &Reader) { 23 return Reader.readArray(RVAs, Reader.bytesRemaining() / sizeof(uint32_t)); 24} 25 26DebugSymbolRVASubsection::DebugSymbolRVASubsection() 27 : DebugSubsection(DebugSubsectionKind::CoffSymbolRVA) {} 28 29Error DebugSymbolRVASubsection::commit(BinaryStreamWriter &Writer) const { 30 return Writer.writeArray(makeArrayRef(RVAs)); 31} 32 33uint32_t DebugSymbolRVASubsection::calculateSerializedSize() const { 34 return RVAs.size() * sizeof(uint32_t); 35} 36