18456b16eSEugene Zelenko //===- DebugSymbolRVASubsection.cpp ---------------------------------------===//
23226fe95SZachary Turner //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
63226fe95SZachary Turner //
73226fe95SZachary Turner //===----------------------------------------------------------------------===//
83226fe95SZachary Turner 
93226fe95SZachary Turner #include "llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h"
108456b16eSEugene Zelenko #include "llvm/ADT/ArrayRef.h"
118456b16eSEugene Zelenko #include "llvm/DebugInfo/CodeView/CodeView.h"
128456b16eSEugene Zelenko #include "llvm/Support/BinaryStreamReader.h"
138456b16eSEugene Zelenko #include "llvm/Support/BinaryStreamWriter.h"
148456b16eSEugene Zelenko #include <cstdint>
153226fe95SZachary Turner 
163226fe95SZachary Turner using namespace llvm;
173226fe95SZachary Turner using namespace llvm::codeview;
183226fe95SZachary Turner 
DebugSymbolRVASubsectionRef()193226fe95SZachary Turner DebugSymbolRVASubsectionRef::DebugSymbolRVASubsectionRef()
203226fe95SZachary Turner     : DebugSubsectionRef(DebugSubsectionKind::CoffSymbolRVA) {}
213226fe95SZachary Turner 
initialize(BinaryStreamReader & Reader)223226fe95SZachary Turner Error DebugSymbolRVASubsectionRef::initialize(BinaryStreamReader &Reader) {
233226fe95SZachary Turner   return Reader.readArray(RVAs, Reader.bytesRemaining() / sizeof(uint32_t));
243226fe95SZachary Turner }
253226fe95SZachary Turner 
DebugSymbolRVASubsection()263226fe95SZachary Turner DebugSymbolRVASubsection::DebugSymbolRVASubsection()
273226fe95SZachary Turner     : DebugSubsection(DebugSubsectionKind::CoffSymbolRVA) {}
283226fe95SZachary Turner 
commit(BinaryStreamWriter & Writer) const293226fe95SZachary Turner Error DebugSymbolRVASubsection::commit(BinaryStreamWriter &Writer) const {
303226fe95SZachary Turner   return Writer.writeArray(makeArrayRef(RVAs));
313226fe95SZachary Turner }
323226fe95SZachary Turner 
calculateSerializedSize() const333226fe95SZachary Turner uint32_t DebugSymbolRVASubsection::calculateSerializedSize() const {
343226fe95SZachary Turner   return RVAs.size() * sizeof(uint32_t);
353226fe95SZachary Turner }
36