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