diff options
Diffstat (limited to 'tools/obj2yaml/coff2yaml.cpp')
-rw-r--r-- | tools/obj2yaml/coff2yaml.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/tools/obj2yaml/coff2yaml.cpp b/tools/obj2yaml/coff2yaml.cpp index f675bfe4e618e..c734601ede76b 100644 --- a/tools/obj2yaml/coff2yaml.cpp +++ b/tools/obj2yaml/coff2yaml.cpp @@ -9,7 +9,7 @@ #include "obj2yaml.h" #include "llvm/Object/COFF.h" -#include "llvm/Object/COFFYAML.h" +#include "llvm/ObjectYAML/COFFYAML.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/YAMLTraits.h" @@ -109,6 +109,7 @@ void COFFDumper::dumpSections(unsigned NumSections) { NewYAMLSection.Header.VirtualAddress = ObjSection.getAddress(); NewYAMLSection.Header.VirtualSize = COFFSection->VirtualSize; NewYAMLSection.Alignment = ObjSection.getAlignment(); + assert(NewYAMLSection.Alignment <= 8192); ArrayRef<uint8_t> sectionData; if (!ObjSection.isBSS()) @@ -120,9 +121,14 @@ void COFFDumper::dumpSections(unsigned NumSections) { const object::coff_relocation *reloc = Obj.getCOFFRelocation(Reloc); COFFYAML::Relocation Rel; object::symbol_iterator Sym = Reloc.getSymbol(); - ErrorOr<StringRef> SymbolNameOrErr = Sym->getName(); - if (std::error_code EC = SymbolNameOrErr.getError()) - report_fatal_error(EC.message()); + Expected<StringRef> SymbolNameOrErr = Sym->getName(); + if (!SymbolNameOrErr) { + std::string Buf; + raw_string_ostream OS(Buf); + logAllUnhandledErrors(SymbolNameOrErr.takeError(), OS, ""); + OS.flush(); + report_fatal_error(Buf); + } Rel.SymbolName = *SymbolNameOrErr; Rel.VirtualAddress = reloc->VirtualAddress; Rel.Type = reloc->Type; |