1 //===- DebugSymbolRVASubsection.cpp ---------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h" 11 #include "llvm/ADT/ArrayRef.h" 12 #include "llvm/DebugInfo/CodeView/CodeView.h" 13 #include "llvm/Support/BinaryStreamReader.h" 14 #include "llvm/Support/BinaryStreamWriter.h" 15 #include <cstdint> 16 17 using namespace llvm; 18 using namespace llvm::codeview; 19 DebugSymbolRVASubsectionRef()20DebugSymbolRVASubsectionRef::DebugSymbolRVASubsectionRef() 21 : DebugSubsectionRef(DebugSubsectionKind::CoffSymbolRVA) {} 22 initialize(BinaryStreamReader & Reader)23Error DebugSymbolRVASubsectionRef::initialize(BinaryStreamReader &Reader) { 24 return Reader.readArray(RVAs, Reader.bytesRemaining() / sizeof(uint32_t)); 25 } 26 DebugSymbolRVASubsection()27DebugSymbolRVASubsection::DebugSymbolRVASubsection() 28 : DebugSubsection(DebugSubsectionKind::CoffSymbolRVA) {} 29 commit(BinaryStreamWriter & Writer) const30Error DebugSymbolRVASubsection::commit(BinaryStreamWriter &Writer) const { 31 return Writer.writeArray(makeArrayRef(RVAs)); 32 } 33 calculateSerializedSize() const34uint32_t DebugSymbolRVASubsection::calculateSerializedSize() const { 35 return RVAs.size() * sizeof(uint32_t); 36 } 37