mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-04 09:45:00 +00:00
13fafb5bb5
No changes, LLD code was updated in r366057. Original commit message: ELF.h contains two getSymbol methods which seems to be used only from obj2yaml. One of these methods calls another, which in turn contains untested error message which doesn't provide enough information. Problem is that after improving only just that message, obj2yaml will not show it, ("Error reading file: yaml: Invalid data was encountered while parsing the file" message will be shown instead), because internal errors handling of tool is based on ErrorOr<> class which stores a error code and as a result can only show a predefined error string, what actually isn't very useful. In this patch, I rework obj2yaml's error reporting system for ELF targets to use Error Expected<> classes. Also, I improve the error message produced by getSymbol for demonstration of the new functionality. Differential revision: https://reviews.llvm.org/D64631 llvm-svn: 366058
46 lines
1.7 KiB
C++
46 lines
1.7 KiB
C++
//===------ utils/obj2yaml.hpp - obj2yaml conversion tool -------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
// This file declares some helper routines, and also the format-specific
|
|
// writers. To add a new format, add the declaration here, and, in a separate
|
|
// source file, implement it.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_TOOLS_OBJ2YAML_OBJ2YAML_H
|
|
#define LLVM_TOOLS_OBJ2YAML_OBJ2YAML_H
|
|
|
|
#include "llvm/Object/COFF.h"
|
|
#include "llvm/Object/Minidump.h"
|
|
#include "llvm/Object/Wasm.h"
|
|
#include "llvm/Object/XCOFFObjectFile.h"
|
|
#include "llvm/Support/raw_ostream.h"
|
|
#include <system_error>
|
|
|
|
std::error_code coff2yaml(llvm::raw_ostream &Out,
|
|
const llvm::object::COFFObjectFile &Obj);
|
|
llvm::Error elf2yaml(llvm::raw_ostream &Out,
|
|
const llvm::object::ObjectFile &Obj);
|
|
std::error_code macho2yaml(llvm::raw_ostream &Out,
|
|
const llvm::object::Binary &Obj);
|
|
llvm::Error minidump2yaml(llvm::raw_ostream &Out,
|
|
const llvm::object::MinidumpFile &Obj);
|
|
std::error_code xcoff2yaml(llvm::raw_ostream &Out,
|
|
const llvm::object::XCOFFObjectFile &Obj);
|
|
std::error_code wasm2yaml(llvm::raw_ostream &Out,
|
|
const llvm::object::WasmObjectFile &Obj);
|
|
|
|
// Forward decls for dwarf2yaml
|
|
namespace llvm {
|
|
class DWARFContext;
|
|
namespace DWARFYAML {
|
|
struct Data;
|
|
}
|
|
}
|
|
|
|
std::error_code dwarf2yaml(llvm::DWARFContext &DCtx, llvm::DWARFYAML::Data &Y);
|
|
|
|
#endif
|