summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/COFFDump.cpp
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-01-18 11:33:26 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-01-18 11:33:26 +0000
commitc1964885318a91dcf4fa524d2d221194773f35c8 (patch)
tree88e20fd2f0b3689aaf3320f693141f1554c63ee5 /llvm/tools/llvm-objdump/COFFDump.cpp
parent77364be497beba7caf7ba1c8dc94671655f757a0 (diff)
downloadbcm5719-llvm-c1964885318a91dcf4fa524d2d221194773f35c8.tar.gz
bcm5719-llvm-c1964885318a91dcf4fa524d2d221194773f35c8.zip
[llvm-objdump] - Move getRelocationValueString and dependenices out of the llvm-objdump.cpp
getRelocationValueString is a dispatcher function that calls the corresponding ELF/COFF/Wasm/MachO implementations that currently live in the llvm-objdump.cpp file. These implementations better be moved to ELFDump.cpp, COFFDump.cpp and other corresponding files, to move platform specific implementation out from the common logic. The patch does that. Also, I had to move ToolSectionFilter helper and SectionFilterIterator, SectionFilter to a header to make them available across the objdump code. Differential revision: https://reviews.llvm.org/D56842 llvm-svn: 351545
Diffstat (limited to 'llvm/tools/llvm-objdump/COFFDump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/COFFDump.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objdump/COFFDump.cpp b/llvm/tools/llvm-objdump/COFFDump.cpp
index 55607ec299b..f5a8cf75490 100644
--- a/llvm/tools/llvm-objdump/COFFDump.cpp
+++ b/llvm/tools/llvm-objdump/COFFDump.cpp
@@ -469,6 +469,19 @@ static bool getPDataSection(const COFFObjectFile *Obj,
return false;
}
+std::error_code
+llvm::getCOFFRelocationValueString(const COFFObjectFile *Obj,
+ const RelocationRef &Rel,
+ SmallVectorImpl<char> &Result) {
+ symbol_iterator SymI = Rel.getSymbol();
+ Expected<StringRef> SymNameOrErr = SymI->getName();
+ if (!SymNameOrErr)
+ return errorToErrorCode(SymNameOrErr.takeError());
+ StringRef SymName = *SymNameOrErr;
+ Result.append(SymName.begin(), SymName.end());
+ return std::error_code();
+}
+
static void printWin64EHUnwindInfo(const Win64EH::UnwindInfo *UI) {
// The casts to int are required in order to output the value as number.
// Without the casts the value would be interpreted as char data (which
OpenPOWER on IntegriCloud