1//===--- DWARFEmitter.h - ---------------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8/// \file 9/// Common declarations for yaml2obj 10//===----------------------------------------------------------------------===// 11 12#ifndef LLVM_OBJECTYAML_DWARFEMITTER_H 13#define LLVM_OBJECTYAML_DWARFEMITTER_H 14 15#include "llvm/ADT/StringMap.h" 16#include "llvm/ADT/StringRef.h" 17#include "llvm/Support/Error.h" 18#include "llvm/Support/Host.h" 19#include "llvm/Support/MemoryBuffer.h" 20#include <memory> 21 22namespace llvm { 23 24class raw_ostream; 25 26namespace DWARFYAML { 27 28struct Data; 29struct PubSection; 30 31void EmitDebugAbbrev(raw_ostream &OS, const Data &DI); 32void EmitDebugStr(raw_ostream &OS, const Data &DI); 33 34void EmitDebugAranges(raw_ostream &OS, const Data &DI); 35void EmitPubSection(raw_ostream &OS, const PubSection &Sect, 36 bool IsLittleEndian); 37void EmitDebugInfo(raw_ostream &OS, const Data &DI); 38void EmitDebugLine(raw_ostream &OS, const Data &DI); 39 40Expected<StringMap<std::unique_ptr<MemoryBuffer>>> 41EmitDebugSections(StringRef YAMLString, bool ApplyFixups = false, 42 bool IsLittleEndian = sys::IsLittleEndianHost); 43StringMap<std::unique_ptr<MemoryBuffer>> 44EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups); 45 46} // end namespace DWARFYAML 47} // end namespace llvm 48 49#endif // LLVM_OBJECTYAML_DWARFEMITTER_H 50