1*8456b16eSEugene Zelenko //===- DebugSymbolRVASubsection.cpp ---------------------------------------===//
23226fe95SZachary Turner //
33226fe95SZachary Turner //                     The LLVM Compiler Infrastructure
43226fe95SZachary Turner //
53226fe95SZachary Turner // This file is distributed under the University of Illinois Open Source
63226fe95SZachary Turner // License. See LICENSE.TXT for details.
73226fe95SZachary Turner //
83226fe95SZachary Turner //===----------------------------------------------------------------------===//
93226fe95SZachary Turner 
103226fe95SZachary Turner #include "llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h"
11*8456b16eSEugene Zelenko #include "llvm/ADT/ArrayRef.h"
12*8456b16eSEugene Zelenko #include "llvm/DebugInfo/CodeView/CodeView.h"
13*8456b16eSEugene Zelenko #include "llvm/Support/BinaryStreamReader.h"
14*8456b16eSEugene Zelenko #include "llvm/Support/BinaryStreamWriter.h"
15*8456b16eSEugene Zelenko #include <cstdint>
163226fe95SZachary Turner 
173226fe95SZachary Turner using namespace llvm;
183226fe95SZachary Turner using namespace llvm::codeview;
193226fe95SZachary Turner 
203226fe95SZachary Turner DebugSymbolRVASubsectionRef::DebugSymbolRVASubsectionRef()
213226fe95SZachary Turner     : DebugSubsectionRef(DebugSubsectionKind::CoffSymbolRVA) {}
223226fe95SZachary Turner 
233226fe95SZachary Turner Error DebugSymbolRVASubsectionRef::initialize(BinaryStreamReader &Reader) {
243226fe95SZachary Turner   return Reader.readArray(RVAs, Reader.bytesRemaining() / sizeof(uint32_t));
253226fe95SZachary Turner }
263226fe95SZachary Turner 
273226fe95SZachary Turner DebugSymbolRVASubsection::DebugSymbolRVASubsection()
283226fe95SZachary Turner     : DebugSubsection(DebugSubsectionKind::CoffSymbolRVA) {}
293226fe95SZachary Turner 
303226fe95SZachary Turner Error DebugSymbolRVASubsection::commit(BinaryStreamWriter &Writer) const {
313226fe95SZachary Turner   return Writer.writeArray(makeArrayRef(RVAs));
323226fe95SZachary Turner }
333226fe95SZachary Turner 
343226fe95SZachary Turner uint32_t DebugSymbolRVASubsection::calculateSerializedSize() const {
353226fe95SZachary Turner   return RVAs.size() * sizeof(uint32_t);
363226fe95SZachary Turner }
37