diff options
author | Rui Ueyama <ruiu@google.com> | 2014-01-17 22:02:24 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2014-01-17 22:02:24 +0000 |
commit | 9106d365f5577c579c383766405e2aa9b9e9ae38 (patch) | |
tree | 262cd23b12c4883719fea496948282d26e20550b | |
parent | ceaf829339bcd0719a43b3e8c22eaab7a973d37d (diff) | |
download | llvm-9106d365f5577c579c383766405e2aa9b9e9ae38.tar.gz llvm-9106d365f5577c579c383766405e2aa9b9e9ae38.tar.bz2 llvm-9106d365f5577c579c383766405e2aa9b9e9ae38.tar.xz |
llvm-objdump/COFF: Print ordinal base number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199518 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Object/COFF.h | 1 | ||||
-rw-r--r-- | lib/Object/COFFObjectFile.cpp | 6 | ||||
-rw-r--r-- | test/tools/llvm-objdump/coff-private-headers.test | 1 | ||||
-rw-r--r-- | tools/llvm-objdump/COFFDump.cpp | 4 |
4 files changed, 12 insertions, 0 deletions
diff --git a/include/llvm/Object/COFF.h b/include/llvm/Object/COFF.h index b8555370e0..1514f279b4 100644 --- a/include/llvm/Object/COFF.h +++ b/include/llvm/Object/COFF.h @@ -408,6 +408,7 @@ public: error_code getNext(ExportDirectoryEntryRef &Result) const; error_code getDllName(StringRef &Result) const; + error_code getOrdinalBase(uint32_t &Result) const; error_code getOrdinal(uint32_t &Result) const; error_code getExportRVA(uint32_t &Result) const; error_code getSymbolName(StringRef &Result) const; diff --git a/lib/Object/COFFObjectFile.cpp b/lib/Object/COFFObjectFile.cpp index 4709612167..fca21843b2 100644 --- a/lib/Object/COFFObjectFile.cpp +++ b/lib/Object/COFFObjectFile.cpp @@ -959,6 +959,12 @@ error_code ExportDirectoryEntryRef::getDllName(StringRef &Result) const { return object_error::success; } +// Returns the starting ordinal number. +error_code ExportDirectoryEntryRef::getOrdinalBase(uint32_t &Result) const { + Result = ExportTable->OrdinalBase; + return object_error::success; +} + // Returns the export ordinal of the current export symbol. error_code ExportDirectoryEntryRef::getOrdinal(uint32_t &Result) const { Result = ExportTable->OrdinalBase + Index; diff --git a/test/tools/llvm-objdump/coff-private-headers.test b/test/tools/llvm-objdump/coff-private-headers.test index 7d1bde72a0..de3de9001d 100644 --- a/test/tools/llvm-objdump/coff-private-headers.test +++ b/test/tools/llvm-objdump/coff-private-headers.test @@ -12,6 +12,7 @@ IMPORT-NEXT: 365 ExitProcess EXPORT: Export Table: EXPORT-NEXT: DLL name: export.test.tmp3.dll +EXPORT-NEXT: Ordinal base: 5 EXPORT-NEXT: Ordinal RVA Name EXPORT-NEXT: 5 0x2008 EXPORT-NEXT: 6 0x2010 exportfn2 diff --git a/tools/llvm-objdump/COFFDump.cpp b/tools/llvm-objdump/COFFDump.cpp index bb997e0e62..106dcba37a 100644 --- a/tools/llvm-objdump/COFFDump.cpp +++ b/tools/llvm-objdump/COFFDump.cpp @@ -286,9 +286,13 @@ static void printExportTable(const COFFObjectFile *Obj) { if (I == E) return; StringRef DllName; + uint32_t OrdinalBase; if (I->getDllName(DllName)) return; + if (I->getOrdinalBase(OrdinalBase)) + return; outs() << " DLL name: " << DllName << "\n"; + outs() << " Ordinal base: " << OrdinalBase << "\n"; outs() << " Ordinal RVA Name\n"; error_code EC; for (; I != E; I = I.increment(EC)) { |