1591312c5SZachary Turner //===- DebugSymbolsSubsection.cpp -------------------------------*- C++ -*-===// 2591312c5SZachary Turner // 3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6591312c5SZachary Turner // 7591312c5SZachary Turner //===----------------------------------------------------------------------===// 8591312c5SZachary Turner 9591312c5SZachary Turner #include "llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h" 10591312c5SZachary Turner 11591312c5SZachary Turner using namespace llvm; 12591312c5SZachary Turner using namespace llvm::codeview; 13591312c5SZachary Turner 14591312c5SZachary Turner Error DebugSymbolsSubsectionRef::initialize(BinaryStreamReader Reader) { 15591312c5SZachary Turner return Reader.readArray(Records, Reader.getLength()); 16591312c5SZachary Turner } 17591312c5SZachary Turner 18591312c5SZachary Turner uint32_t DebugSymbolsSubsection::calculateSerializedSize() const { 19591312c5SZachary Turner return Length; 20591312c5SZachary Turner } 21591312c5SZachary Turner 22591312c5SZachary Turner Error DebugSymbolsSubsection::commit(BinaryStreamWriter &Writer) const { 23591312c5SZachary Turner for (const auto &Record : Records) { 24591312c5SZachary Turner if (auto EC = Writer.writeBytes(Record.RecordData)) 25591312c5SZachary Turner return EC; 26591312c5SZachary Turner } 27591312c5SZachary Turner return Error::success(); 28591312c5SZachary Turner } 29591312c5SZachary Turner 30591312c5SZachary Turner void DebugSymbolsSubsection::addSymbol(CVSymbol Symbol) { 31591312c5SZachary Turner Records.push_back(Symbol); 32591312c5SZachary Turner Length += Symbol.length(); 33591312c5SZachary Turner }