36 lines · cpp
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-exception6//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(ArrayRef(RVAs));31}32 33uint32_t DebugSymbolRVASubsection::calculateSerializedSize() const {34 return RVAs.size() * sizeof(uint32_t);35}36