summaryrefslogtreecommitdiff
path: root/tools/obj2yaml/coff2yaml.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/obj2yaml/coff2yaml.cpp')
-rw-r--r--tools/obj2yaml/coff2yaml.cpp14
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;