1ee2f195dSDimitry Andric //===- DebugSymbolsSubsection.cpp -------------------------------*- C++ -*-===// 2ee2f195dSDimitry Andric // 3e6d15924SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e6d15924SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5e6d15924SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6ee2f195dSDimitry Andric // 7ee2f195dSDimitry Andric //===----------------------------------------------------------------------===// 8ee2f195dSDimitry Andric 9ee2f195dSDimitry Andric #include "llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h" 10145449b1SDimitry Andric #include "llvm/Support/BinaryStreamWriter.h" 11ee2f195dSDimitry Andric 12ee2f195dSDimitry Andric using namespace llvm; 13ee2f195dSDimitry Andric using namespace llvm::codeview; 14ee2f195dSDimitry Andric initialize(BinaryStreamReader Reader)15ee2f195dSDimitry AndricError DebugSymbolsSubsectionRef::initialize(BinaryStreamReader Reader) { 16ee2f195dSDimitry Andric return Reader.readArray(Records, Reader.getLength()); 17ee2f195dSDimitry Andric } 18ee2f195dSDimitry Andric calculateSerializedSize() const19ee2f195dSDimitry Andricuint32_t DebugSymbolsSubsection::calculateSerializedSize() const { 20ee2f195dSDimitry Andric return Length; 21ee2f195dSDimitry Andric } 22ee2f195dSDimitry Andric commit(BinaryStreamWriter & Writer) const23ee2f195dSDimitry AndricError DebugSymbolsSubsection::commit(BinaryStreamWriter &Writer) const { 24ee2f195dSDimitry Andric for (const auto &Record : Records) { 25ee2f195dSDimitry Andric if (auto EC = Writer.writeBytes(Record.RecordData)) 26ee2f195dSDimitry Andric return EC; 27ee2f195dSDimitry Andric } 28ee2f195dSDimitry Andric return Error::success(); 29ee2f195dSDimitry Andric } 30ee2f195dSDimitry Andric addSymbol(CVSymbol Symbol)31ee2f195dSDimitry Andricvoid DebugSymbolsSubsection::addSymbol(CVSymbol Symbol) { 32ee2f195dSDimitry Andric Records.push_back(Symbol); 33ee2f195dSDimitry Andric Length += Symbol.length(); 34ee2f195dSDimitry Andric } 35