llvm-objdump: Don't print "Import table:" header if there's no import table.
authorRui Ueyama <ruiu@google.com>
Wed, 15 Jan 2014 23:46:18 +0000 (23:46 +0000)
committerRui Ueyama <ruiu@google.com>
Wed, 15 Jan 2014 23:46:18 +0000 (23:46 +0000)
If a binary does not depend on any DLL, it does not contain import table at
all. Printing the section title without contents looks wrong, so we shouldn't
print it in that case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199340 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-objdump/COFFDump.cpp

index 5f0bcbbc92ddbb45165a7e9dc66a315d2c22c11c..9c380100e8cd81199b03ea58d206cc5f660ad280 100644 (file)
@@ -230,11 +230,13 @@ static void printCOFFSymbolAddress(llvm::raw_ostream &Out,
 // Prints import tables. The import table is a table containing the list of
 // DLL name and symbol names which will be linked by the loader.
 static void printImportTables(const COFFObjectFile *Obj) {
+  import_directory_iterator i = Obj->import_directory_begin();
+  import_directory_iterator e = Obj->import_directory_end();
+  if (i == e)
+    return;
   outs() << "The Import Tables:\n";
   error_code ec;
-  for (import_directory_iterator i = Obj->import_directory_begin(),
-                                 e = Obj->import_directory_end();
-       i != e; i = i.increment(ec)) {
+  for (; i != e; i = i.increment(ec)) {
     if (ec)
       return;