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