[lld] d71c3c4 - [COFF] Dump string table size for COFF file headers

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Wed May 6 15:48:46 PDT 2020


Author: Reid Kleckner
Date: 2020-05-06T15:48:36-07:00
New Revision: d71c3c425cf567b966d88e56651b8b052b08a97c

URL: https://github.com/llvm/llvm-project/commit/d71c3c425cf567b966d88e56651b8b052b08a97c
DIFF: https://github.com/llvm/llvm-project/commit/d71c3c425cf567b966d88e56651b8b052b08a97c.diff

LOG: [COFF] Dump string table size for COFF file headers

I couldn't find this info in any other dumper, so it might as well be
here.

Added: 
    

Modified: 
    lld/test/COFF/hello32.test
    lld/test/COFF/largeaddressaware.test
    llvm/include/llvm/Object/COFF.h
    llvm/test/tools/llvm-readobj/COFF/bigobj.test
    llvm/test/tools/llvm-readobj/COFF/file-headers.test
    llvm/tools/llvm-readobj/COFFDumper.cpp

Removed: 
    


################################################################################
diff  --git a/lld/test/COFF/hello32.test b/lld/test/COFF/hello32.test
index 61418d3d24bb..02bdf2cea009 100644
--- a/lld/test/COFF/hello32.test
+++ b/lld/test/COFF/hello32.test
@@ -14,6 +14,7 @@ HEADER-NEXT:   SectionCount: 4
 HEADER-NEXT:   TimeDateStamp: 
 HEADER-NEXT:   PointerToSymbolTable: 0x0
 HEADER-NEXT:   SymbolCount: 0
+HEADER-NEXT:   StringTableSize: 0
 HEADER-NEXT:   OptionalHeaderSize: 224
 HEADER-NEXT:   Characteristics [ (0x102)
 HEADER-NEXT:     IMAGE_FILE_32BIT_MACHINE (0x100)

diff  --git a/lld/test/COFF/largeaddressaware.test b/lld/test/COFF/largeaddressaware.test
index ddd37131a65d..50f703a11eb4 100644
--- a/lld/test/COFF/largeaddressaware.test
+++ b/lld/test/COFF/largeaddressaware.test
@@ -12,6 +12,7 @@ HEADER-NEXT:   SectionCount: 4
 HEADER-NEXT:   TimeDateStamp: 
 HEADER-NEXT:   PointerToSymbolTable: 0x0
 HEADER-NEXT:   SymbolCount: 0
+HEADER-NEXT:   StringTableSize: 0
 HEADER-NEXT:   OptionalHeaderSize: 224
 HEADER-NEXT:   Characteristics [ (0x122)
 HEADER-NEXT:     IMAGE_FILE_32BIT_MACHINE (0x100)

diff  --git a/llvm/include/llvm/Object/COFF.h b/llvm/include/llvm/Object/COFF.h
index 3d0afa12bf38..230217830809 100644
--- a/llvm/include/llvm/Object/COFF.h
+++ b/llvm/include/llvm/Object/COFF.h
@@ -878,6 +878,8 @@ class COFFObjectFile : public ObjectFile {
     return getRawNumberOfSymbols();
   }
 
+  uint32_t getStringTableSize() const { return StringTableSize; }
+
   const coff_load_configuration32 *getLoadConfig32() const {
     assert(!is64());
     return reinterpret_cast<const coff_load_configuration32 *>(LoadConfig);

diff  --git a/llvm/test/tools/llvm-readobj/COFF/bigobj.test b/llvm/test/tools/llvm-readobj/COFF/bigobj.test
index 10972144315d..36d1baa4a639 100644
--- a/llvm/test/tools/llvm-readobj/COFF/bigobj.test
+++ b/llvm/test/tools/llvm-readobj/COFF/bigobj.test
@@ -10,6 +10,7 @@ CHECK-NEXT:   SectionCount: 3
 CHECK-NEXT:   TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 CHECK-NEXT:   PointerToSymbolTable: 0xB0
 CHECK-NEXT:   SymbolCount: 8
+CHECK-NEXT:   StringTableSize: 4
 CHECK-NEXT:   OptionalHeaderSize: 0
 CHECK-NEXT:   Characteristics [ (0x0)
 CHECK-NEXT:   ]

diff  --git a/llvm/test/tools/llvm-readobj/COFF/file-headers.test b/llvm/test/tools/llvm-readobj/COFF/file-headers.test
index 77efe0146bed..a8771ea32e46 100644
--- a/llvm/test/tools/llvm-readobj/COFF/file-headers.test
+++ b/llvm/test/tools/llvm-readobj/COFF/file-headers.test
@@ -12,6 +12,7 @@
 # ARM-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # ARM-NEXT:  PointerToSymbolTable: 0x0
 # ARM-NEXT:  SymbolCount: 0
+# ARM-NEXT:  StringTableSize: 0
 # ARM-NEXT:  OptionalHeaderSize: 0
 # ARM-NEXT:  Characteristics [ (0x0)
 # ARM-NEXT:  ]
@@ -39,6 +40,7 @@ symbols:
 # ARM64-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # ARM64-NEXT:  PointerToSymbolTable: 0x0
 # ARM64-NEXT:  SymbolCount: 0
+# ARM64-NEXT:  StringTableSize: 0
 # ARM64-NEXT:  OptionalHeaderSize: 0
 # ARM64-NEXT:  Characteristics [ (0x0)
 # ARM64-NEXT:  ]
@@ -66,6 +68,7 @@ symbols:
 # I386-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # I386-NEXT:  PointerToSymbolTable: 0x0
 # I386-NEXT:  SymbolCount: 0
+# I386-NEXT:  StringTableSize: 0
 # I386-NEXT:  OptionalHeaderSize: 0
 # I386-NEXT:  Characteristics [ (0x0)
 # I386-NEXT:  ]
@@ -93,6 +96,7 @@ symbols:
 # X86-64-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # X86-64-NEXT:  PointerToSymbolTable: 0x0
 # X86-64-NEXT:  SymbolCount: 0
+# X86-64-NEXT:  StringTableSize: 0
 # X86-64-NEXT:  OptionalHeaderSize: 0
 # X86-64-NEXT:  Characteristics [ (0x0)
 # X86-64-NEXT:  ]
@@ -120,6 +124,7 @@ symbols:
 # I386-CUSTOM-HEADER-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # I386-CUSTOM-HEADER-NEXT:  PointerToSymbolTable: 0x0
 # I386-CUSTOM-HEADER-NEXT:  SymbolCount: 0
+# I386-CUSTOM-HEADER-NEXT:  StringTableSize: 0
 # I386-CUSTOM-HEADER-NEXT:  OptionalHeaderSize: 224
 # I386-CUSTOM-HEADER-NEXT:  Characteristics [ (0x102)
 # I386-CUSTOM-HEADER-NEXT:    IMAGE_FILE_32BIT_MACHINE (0x100)
@@ -297,6 +302,7 @@ symbols:         []
 # UNKNOWN-NEXT:  TimeDateStamp: 1970-01-01 00:00:00 (0x0)
 # UNKNOWN-NEXT:  PointerToSymbolTable: 0x0
 # UNKNOWN-NEXT:  SymbolCount: 0
+# UNKNOWN-NEXT:  StringTableSize: 0
 # UNKNOWN-NEXT:  OptionalHeaderSize: 0
 # UNKNOWN-NEXT:  Characteristics [ (0x0)
 # UNKNOWN-NEXT:  ]

diff  --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp
index 08031ae8f49c..af19a160deb6 100644
--- a/llvm/tools/llvm-readobj/COFFDumper.cpp
+++ b/llvm/tools/llvm-readobj/COFFDumper.cpp
@@ -629,6 +629,7 @@ void COFFDumper::printFileHeaders() {
     W.printHex   ("TimeDateStamp", FormattedTime, Obj->getTimeDateStamp());
     W.printHex   ("PointerToSymbolTable", Obj->getPointerToSymbolTable());
     W.printNumber("SymbolCount", Obj->getNumberOfSymbols());
+    W.printNumber("StringTableSize", Obj->getStringTableSize());
     W.printNumber("OptionalHeaderSize", Obj->getSizeOfOptionalHeader());
     W.printFlags ("Characteristics", Obj->getCharacteristics(),
                     makeArrayRef(ImageFileCharacteristics));


        


More information about the llvm-commits mailing list