[PATCH] D74823: [XCOFF/objdump] Fix crash in objdump when trying to use -r with XCOFF binaries
Dave Bozier via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 19 02:50:44 PST 2020
davidb updated this revision to Diff 245361.
davidb added a comment.
- fix space issues
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74823/new/
https://reviews.llvm.org/D74823
Files:
llvm/include/llvm/Object/XCOFFObjectFile.h
llvm/test/tools/llvm-objdump/xcoff-disassemble-all.test
llvm/tools/llvm-objdump/llvm-objdump.cpp
Index: llvm/tools/llvm-objdump/llvm-objdump.cpp
===================================================================
--- llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -45,6 +45,7 @@
#include "llvm/Object/MachO.h"
#include "llvm/Object/MachOUniversal.h"
#include "llvm/Object/ObjectFile.h"
+#include "llvm/Object/XCOFFObjectFile.h"
#include "llvm/Object/Wasm.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
@@ -2193,6 +2194,14 @@
DumpOpts.DumpType = DwarfDumpType;
DICtx->dump(outs(), DumpOpts);
}
+
+ // Relocation processing is not yet implemented for XCOFF binaries
+ if(Relocations && isa<XCOFFObjectFile>(O)) {
+ reportWarning("-r/--relocs option not supported for XCOFF object files, "
+ "ignoring option", O->getFileName());
+ Relocations = false;
+ }
+
if (Relocations && !Disassemble)
printRelocations(O);
if (DynamicRelocations)
Index: llvm/test/tools/llvm-objdump/xcoff-disassemble-all.test
===================================================================
--- llvm/test/tools/llvm-objdump/xcoff-disassemble-all.test
+++ llvm/test/tools/llvm-objdump/xcoff-disassemble-all.test
@@ -1,5 +1,7 @@
-# RUN: llvm-objdump -D %p/Inputs/xcoff-section-headers.o | \
-# RUN: FileCheck %s
+# RUN: llvm-objdump -D %p/Inputs/xcoff-section-headers.o 2>&1 | \
+# RUN: FileCheck %s --check-prefixes=CHECK,NO-RELOC-OPTION
+# RUN: llvm-objdump -D -r %p/Inputs/xcoff-section-headers.o 2>&1 | \
+# RUN: FileCheck %s --check-prefixes=CHECK,RELOC-OPTION
# xcoff-section-headers.o Compiled with IBM XL C/C++ for AIX, V16.1.0
# compiler command: xlc -qtls -o xcoff-section-headers.o -c test.c
@@ -14,6 +16,8 @@
# }
; REQUIRES: powerpc-registered-target
CHECK: Inputs/xcoff-section-headers.o: file format aixcoff-rs6000
+NO-RELOC-OPTION-NOT: -r/--relocs option not supported for XCOFF object files, ignoring option
+RELOC-OPTION: -r/--relocs option not supported for XCOFF object files, ignoring option
CHECK: Disassembly of section .text:
CHECK: 00000000 .text:
CHECK-NEXT: 0: 80 62 00 04 lwz 3, 4(2)
Index: llvm/include/llvm/Object/XCOFFObjectFile.h
===================================================================
--- llvm/include/llvm/Object/XCOFFObjectFile.h
+++ llvm/include/llvm/Object/XCOFFObjectFile.h
@@ -346,6 +346,7 @@
Expected<ArrayRef<XCOFFRelocation32>>
relocations(const XCOFFSectionHeader32 &) const;
+ static bool classof(const Binary *v) { return v->isXCOFF(); }
}; // XCOFFObjectFile
class XCOFFSymbolRef {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74823.245361.patch
Type: text/x-patch
Size: 2589 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200219/531dd04d/attachment.bin>
More information about the llvm-commits
mailing list