diff --git a/llvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test b/llvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test --- a/llvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test +++ b/llvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test @@ -37,7 +37,8 @@ # LLVM1-NEXT: Size: 0 # LLVM1-NEXT: Binding: Local (0x0) # LLVM1-NEXT: Type: None (0x0) -# LLVM1-NEXT: Other: 0 +# LLVM1-NEXT: Other [ (0x0) +# LLVM1-NEXT: ] # LLVM1-NEXT: Section: Undefined (0x0) # LLVM1-NEXT: } # LLVM1-NEXT: Symbol { @@ -46,7 +47,8 @@ # LLVM1-NEXT: Size: 0 # LLVM1-NEXT: Binding: Local (0x0) # LLVM1-NEXT: Type: Function (0x2) -# LLVM1-NEXT: Other: 0 +# LLVM1-NEXT: Other [ (0x0) +# LLVM1-NEXT: ] # STRIP-NEXT: Section: (0x1) # NOSTRIP-NEXT: Section: .text (0x1) # LLVM1-NEXT: } @@ -56,7 +58,8 @@ # LLVM1-NEXT: Size: 0 # LLVM1-NEXT: Binding: Local (0x0) # LLVM1-NEXT: Type: Object (0x1) -# LLVM1-NEXT: Other: 0 +# LLVM1-NEXT: Other [ (0x0) +# LLVM1-NEXT: ] # STRIP-NEXT: Section: (0x2) # NOSTRIP-NEXT: Section: .data (0x2) # LLVM1-NEXT: } @@ -182,7 +185,8 @@ # LLVM2-NEXT: Size: 0 # LLVM2-NEXT: Binding: Local (0x0) # LLVM2-NEXT: Type: None (0x0) -# LLVM2-NEXT: Other: 0 +# LLVM2-NEXT: Other [ (0x0) +# LLVM2-NEXT: ] # LLVM2-NEXT: Section: Undefined (0x0) # LLVM2-NEXT: } # LLVM2-NEXT: Symbol { @@ -191,7 +195,8 @@ # LLVM2-NEXT: Size: 0 # LLVM2-NEXT: Binding: Local (0x0) # LLVM2-NEXT: Type: Function (0x2) -# LLVM2-NEXT: Other: 0 +# LLVM2-NEXT: Other [ (0x0) +# LLVM2-NEXT: ] # LLVM2-NEXT: Section: .text (0x1) # LLVM2-NEXT: } # LLVM2-MORE-NEXT: Symbol { @@ -200,7 +205,8 @@ # LLVM2-MORE-NEXT: Size: 0 # LLVM2-MORE-NEXT: Binding: Local (0x0) # LLVM2-MORE-NEXT: Type: Object (0x1) -# LLVM2-MORE-NEXT: Other: 0 +# LLVM2-MORE-NEXT: Other [ (0x0) +# LLVM2-MORE-NEXT: ] # LLVM2-MORE-NEXT: Section: .data (0x2) # LLVM2-MORE-NEXT: } # LLVM2-ALL-NEXT: Symbol { @@ -209,7 +215,8 @@ # LLVM2-ALL-NEXT: Size: 0 # LLVM2-ALL-NEXT: Binding: Local (0x0) # LLVM2-ALL-NEXT: Type: Object (0x1) -# LLVM2-ALL-NEXT: Other: 0 +# LLVM2-ALL-NEXT: Other [ (0x0) +# LLVM2-ALL-NEXT: ] # LLVM2-ALL-NEXT: Section: .data (0x2) # LLVM2-ALL-NEXT: } # LLVM2-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test b/llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test --- a/llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test +++ b/llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test @@ -14,7 +14,8 @@ # DYNSYMS-LLVM-NEXT: Size: 0 # DYNSYMS-LLVM-NEXT: Binding: Local (0x0) # DYNSYMS-LLVM-NEXT: Type: None (0x0) -# DYNSYMS-LLVM-NEXT: Other: 0 +# DYNSYMS-LLVM-NEXT: Other [ (0x0) +# DYNSYMS-LLVM-NEXT: ] # DYNSYMS-LLVM-NEXT: Section: Undefined (0x0) # DYNSYMS-LLVM-NEXT: } # DYNSYMS-LLVM-NEXT: Symbol { @@ -23,7 +24,8 @@ # DYNSYMS-LLVM-NEXT: Size: 0 # DYNSYMS-LLVM-NEXT: Binding: Local (0x0) # DYNSYMS-LLVM-NEXT: Type: None (0x0) -# DYNSYMS-LLVM-NEXT: Other: 0 +# DYNSYMS-LLVM-NEXT: Other [ (0x0) +# DYNSYMS-LLVM-NEXT: ] # DYNSYMS-LLVM-NEXT: Section: Undefined (0x0) # DYNSYMS-LLVM-NEXT: } # DYNSYMS-LLVM-NEXT: Symbol { @@ -32,7 +34,8 @@ # DYNSYMS-LLVM-NEXT: Size: 0 # DYNSYMS-LLVM-NEXT: Binding: Local (0x0) # DYNSYMS-LLVM-NEXT: Type: None (0x0) -# DYNSYMS-LLVM-NEXT: Other: 0 +# DYNSYMS-LLVM-NEXT: Other [ (0x0) +# DYNSYMS-LLVM-NEXT: ] # DYNSYMS-LLVM-NEXT: Section: Undefined (0x0) # DYNSYMS-LLVM-NEXT: } # DYNSYMS-LLVM-NEXT: ] @@ -98,7 +101,8 @@ # NOPHDRS-LLVM-NEXT: Size: 0 # NOPHDRS-LLVM-NEXT: Binding: Local (0x0) # NOPHDRS-LLVM-NEXT: Type: None (0x0) -# NOPHDRS-LLVM-NEXT: Other: 0 +# NOPHDRS-LLVM-NEXT: Other [ (0x0) +# NOPHDRS-LLVM-NEXT: ] # NOPHDRS-LLVM-NEXT: Section: Undefined (0x0) # NOPHDRS-LLVM-NEXT: } # NOPHDRS-LLVM-NEXT: Symbol { @@ -107,7 +111,8 @@ # NOPHDRS-LLVM-NEXT: Size: 0 # NOPHDRS-LLVM-NEXT: Binding: Local (0x0) # NOPHDRS-LLVM-NEXT: Type: None (0x0) -# NOPHDRS-LLVM-NEXT: Other: 0 +# NOPHDRS-LLVM-NEXT: Other [ (0x0) +# NOPHDRS-LLVM-NEXT: ] # NOPHDRS-LLVM-NEXT: Section: Undefined (0x0) # NOPHDRS-LLVM-NEXT: } # NOPHDRS-LLVM-NEXT: ] @@ -261,7 +266,8 @@ # VERSIONED-UND-LLVM-NEXT: Size: 0 # VERSIONED-UND-LLVM-NEXT: Binding: Local (0x0) # VERSIONED-UND-LLVM-NEXT: Type: None (0x0) -# VERSIONED-UND-LLVM-NEXT: Other: 0 +# VERSIONED-UND-LLVM-NEXT: Other [ (0x0) +# VERSIONED-UND-LLVM-NEXT: ] # VERSIONED-UND-LLVM-NEXT: Section: Undefined (0x0) # VERSIONED-UND-LLVM-NEXT: } # VERSIONED-UND-LLVM-NEXT: Symbol { @@ -270,7 +276,8 @@ # VERSIONED-UND-LLVM-NEXT: Size: 0 # VERSIONED-UND-LLVM-NEXT: Binding: Local (0x0) # VERSIONED-UND-LLVM-NEXT: Type: None (0x0) -# VERSIONED-UND-LLVM-NEXT: Other: 0 +# VERSIONED-UND-LLVM-NEXT: Other [ (0x0) +# VERSIONED-UND-LLVM-NEXT: ] # VERSIONED-UND-LLVM-NEXT: Section: Undefined (0x0) # VERSIONED-UND-LLVM-NEXT: } # VERSIONED-UND-LLVM-NEXT: Symbol { @@ -279,7 +286,8 @@ # VERSIONED-UND-LLVM-NEXT: Size: 0 # VERSIONED-UND-LLVM-NEXT: Binding: Local (0x0) # VERSIONED-UND-LLVM-NEXT: Type: None (0x0) -# VERSIONED-UND-LLVM-NEXT: Other: 0 +# VERSIONED-UND-LLVM-NEXT: Other [ (0x0) +# VERSIONED-UND-LLVM-NEXT: ] # VERSIONED-UND-LLVM-NEXT: Section: Undefined (0x0) # VERSIONED-UND-LLVM-NEXT: } # VERSIONED-UND-LLVM-NEXT: Symbol { @@ -288,7 +296,8 @@ # VERSIONED-UND-LLVM-NEXT: Size: 0 # VERSIONED-UND-LLVM-NEXT: Binding: Local (0x0) # VERSIONED-UND-LLVM-NEXT: Type: None (0x0) -# VERSIONED-UND-LLVM-NEXT: Other: 0 +# VERSIONED-UND-LLVM-NEXT: Other [ (0x0) +# VERSIONED-UND-LLVM-NEXT: ] # VERSIONED-UND-LLVM-NEXT: Section: Undefined (0x0) # VERSIONED-UND-LLVM-NEXT: } # VERSIONED-UND-LLVM-NEXT: Symbol { @@ -297,7 +306,8 @@ # VERSIONED-UND-LLVM-NEXT: Size: 0 # VERSIONED-UND-LLVM-NEXT: Binding: Local (0x0) # VERSIONED-UND-LLVM-NEXT: Type: None (0x0) -# VERSIONED-UND-LLVM-NEXT: Other: 0 +# VERSIONED-UND-LLVM-NEXT: Other [ (0x0) +# VERSIONED-UND-LLVM-NEXT: ] # VERSIONED-UND-LLVM-NEXT: Section: Undefined (0x0) # VERSIONED-UND-LLVM-NEXT: } # VERSIONED-UND-LLVM-NEXT: Symbol { @@ -306,7 +316,8 @@ # VERSIONED-UND-LLVM-NEXT: Size: 0 # VERSIONED-UND-LLVM-NEXT: Binding: Local (0x0) # VERSIONED-UND-LLVM-NEXT: Type: None (0x0) -# VERSIONED-UND-LLVM-NEXT: Other: 0 +# VERSIONED-UND-LLVM-NEXT: Other [ (0x0) +# VERSIONED-UND-LLVM-NEXT: ] # VERSIONED-UND-LLVM-NEXT: Section: Undefined (0x0) # VERSIONED-UND-LLVM-NEXT: } # VERSIONED-UND-LLVM-NEXT: Symbol { @@ -315,7 +326,8 @@ # VERSIONED-UND-LLVM-NEXT: Size: 0 # VERSIONED-UND-LLVM-NEXT: Binding: Local (0x0) # VERSIONED-UND-LLVM-NEXT: Type: None (0x0) -# VERSIONED-UND-LLVM-NEXT: Other: 0 +# VERSIONED-UND-LLVM-NEXT: Other [ (0x0) +# VERSIONED-UND-LLVM-NEXT: ] # VERSIONED-UND-LLVM-NEXT: Section: Undefined (0x0) # VERSIONED-UND-LLVM-NEXT: } # VERSIONED-UND-LLVM-NEXT: ] @@ -523,7 +535,8 @@ # DYNSYM-EMPTY-LLVM-NEXT: Size: 0 # DYNSYM-EMPTY-LLVM-NEXT: Binding: Local (0x0) # DYNSYM-EMPTY-LLVM-NEXT: Type: None (0x0) -# DYNSYM-EMPTY-LLVM-NEXT: Other: 0 +# DYNSYM-EMPTY-LLVM-NEXT: Other [ (0x0) +# DYNSYM-EMPTY-LLVM-NEXT: ] # DYNSYM-EMPTY-LLVM-NEXT: Section: Undefined (0x0) # DYNSYM-EMPTY-LLVM-NEXT: } # DYNSYM-EMPTY-LLVM-NEXT: ] @@ -655,7 +668,8 @@ # DYNSTR-INVALID-LLVM-NEXT: Size: 0 # DYNSTR-INVALID-LLVM-NEXT: Binding: Local (0x0) # DYNSTR-INVALID-LLVM-NEXT: Type: None (0x0) -# DYNSTR-INVALID-LLVM-NEXT: Other: 0 +# DYNSTR-INVALID-LLVM-NEXT: Other [ (0x0) +# DYNSTR-INVALID-LLVM-NEXT: ] # DYNSTR-INVALID-LLVM-NEXT: Section: Undefined (0x0) # DYNSTR-INVALID-LLVM-NEXT: } # DYNSTR-INVALID-LLVM-NEXT: warning: '[[FILE]]': st_name (0xffffff00) is past the end of the string table of size 0x6 @@ -665,7 +679,8 @@ # DYNSTR-INVALID-LLVM-NEXT: Size: 0 # DYNSTR-INVALID-LLVM-NEXT: Binding: Local (0x0) # DYNSTR-INVALID-LLVM-NEXT: Type: None (0x0) -# DYNSTR-INVALID-LLVM-NEXT: Other: 0 +# DYNSTR-INVALID-LLVM-NEXT: Other [ (0x0) +# DYNSTR-INVALID-LLVM-NEXT: ] # DYNSTR-INVALID-LLVM-NEXT: Section: Undefined (0x0) # DYNSTR-INVALID-LLVM-NEXT: } # DYNSTR-INVALID-LLVM-NEXT: Symbol { @@ -674,7 +689,8 @@ # DYNSTR-INVALID-LLVM-NEXT: Size: 0 # DYNSTR-INVALID-LLVM-NEXT: Binding: Local (0x0) # DYNSTR-INVALID-LLVM-NEXT: Type: None (0x0) -# DYNSTR-INVALID-LLVM-NEXT: Other: 0 +# DYNSTR-INVALID-LLVM-NEXT: Other [ (0x0) +# DYNSTR-INVALID-LLVM-NEXT: ] # DYNSTR-INVALID-LLVM-NEXT: Section: Undefined (0x0) # DYNSTR-INVALID-LLVM-NEXT: } # DYNSTR-INVALID-LLVM-NEXT: ] @@ -815,7 +831,8 @@ # LINK-BROKEN-LLVM-NEXT: Size: 0 # LINK-BROKEN-LLVM-NEXT: Binding: Local (0x0) # LINK-BROKEN-LLVM-NEXT: Type: None (0x0) -# LINK-BROKEN-LLVM-NEXT: Other: 0 +# LINK-BROKEN-LLVM-NEXT: Other [ (0x0) +# LINK-BROKEN-LLVM-NEXT: ] # LINK-BROKEN-LLVM-NEXT: Section: Undefined (0x0) # LINK-BROKEN-LLVM-NEXT: } # LINK-BROKEN-LLVM-NEXT: warning: '[[FILE]]': st_name (0x1) is past the end of the string table of size 0x0 @@ -825,7 +842,8 @@ # LINK-BROKEN-LLVM-NEXT: Size: 0 # LINK-BROKEN-LLVM-NEXT: Binding: Local (0x0) # LINK-BROKEN-LLVM-NEXT: Type: None (0x0) -# LINK-BROKEN-LLVM-NEXT: Other: 0 +# LINK-BROKEN-LLVM-NEXT: Other [ (0x0) +# LINK-BROKEN-LLVM-NEXT: ] # LINK-BROKEN-LLVM-NEXT: Section: Undefined (0x0) # LINK-BROKEN-LLVM-NEXT: } # LINK-BROKEN-LLVM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/ELF/sections-ext.test b/llvm/test/tools/llvm-readobj/ELF/sections-ext.test --- a/llvm/test/tools/llvm-readobj/ELF/sections-ext.test +++ b/llvm/test/tools/llvm-readobj/ELF/sections-ext.test @@ -68,7 +68,8 @@ # ST-NEXT: Size: 0 # ST-NEXT: Binding: Local (0x0) # ST-NEXT: Type: None (0x0) -# ST-NEXT: Other: 0 +# ST-NEXT: Other [ (0x0) +# ST-NEXT: ] # ST-NEXT: Section: .text (0x1) # ST-NEXT: } # ST-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test b/llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test --- a/llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test +++ b/llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test @@ -284,7 +284,8 @@ # SHNDX-ERR-LLVM-NEXT: Size: 0 # SHNDX-ERR-LLVM-NEXT: Binding: Local (0x0) # SHNDX-ERR-LLVM-NEXT: Type: None (0x0) -# SHNDX-ERR-LLVM-NEXT: Other: 0 +# SHNDX-ERR-LLVM-NEXT: Other [ (0x0) +# SHNDX-ERR-LLVM-NEXT: ] # SHNDX-ERR-LLVM-NEXT: Section: Undefined (0x0) # SHNDX-ERR-LLVM-NEXT: } # SHNDX-ERR-LLVM-NEXT: Symbol { @@ -293,7 +294,8 @@ # SHNDX-ERR-LLVM-NEXT: Size: 0 # SHNDX-ERR-LLVM-NEXT: Binding: Local (0x0) # SHNDX-ERR-LLVM-NEXT: Type: None (0x0) -# SHNDX-ERR-LLVM-NEXT: Other: 0 +# SHNDX-ERR-LLVM-NEXT: Other [ (0x0) +# SHNDX-ERR-LLVM-NEXT: ] # SHNDX-ERR-LLVM-NEXT: warning: '[[FILE]]': found an extended symbol index (1), but unable to locate the extended symbol index table # SHNDX-ERR-LLVM-NEXT: Section: Reserved (0xFFFF) # SHNDX-ERR-LLVM-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/ELF/symbol-visibility.test b/llvm/test/tools/llvm-readobj/ELF/symbol-visibility.test --- a/llvm/test/tools/llvm-readobj/ELF/symbol-visibility.test +++ b/llvm/test/tools/llvm-readobj/ELF/symbol-visibility.test @@ -9,7 +9,8 @@ # RUN: llvm-readelf --symbols %t1.o | FileCheck %s --strict-whitespace --check-prefix=GNU # LLVM: Name: default -# LLVM: Other: 0 +# LLVM: Other [ (0x0) +# LLVM: ] # LLVM: Name: internal # LLVM: Other [ (0x1) # LLVM-NEXT: STV_INTERNAL (0x1) diff --git a/llvm/test/tools/llvm-readobj/ELF/symbols.test b/llvm/test/tools/llvm-readobj/ELF/symbols.test --- a/llvm/test/tools/llvm-readobj/ELF/symbols.test +++ b/llvm/test/tools/llvm-readobj/ELF/symbols.test @@ -31,7 +31,8 @@ # SYMBOLS-LLVM-NEXT: Size: 0 # SYMBOLS-LLVM-NEXT: Binding: Local (0x0) # SYMBOLS-LLVM-NEXT: Type: None (0x0) -# SYMBOLS-LLVM-NEXT: Other: 0 +# SYMBOLS-LLVM-NEXT: Other [ (0x0) +# SYMBOLS-LLVM-NEXT: ] # SYMBOLS-LLVM-NEXT: Section: Undefined (0x0) # SYMBOLS-LLVM-NEXT: } # SYMBOLS-LLVM-NEXT: Symbol { @@ -40,7 +41,8 @@ # SYMBOLS-LLVM-NEXT: Size: 0 # SYMBOLS-LLVM-NEXT: Binding: Local (0x0) # SYMBOLS-LLVM-NEXT: Type: None (0x0) -# SYMBOLS-LLVM-NEXT: Other: 0 +# SYMBOLS-LLVM-NEXT: Other [ (0x0) +# SYMBOLS-LLVM-NEXT: ] # SYMBOLS-LLVM-NEXT: Section: Undefined (0x0) # SYMBOLS-LLVM-NEXT: } # SYMBOLS-LLVM-NEXT: Symbol { @@ -49,7 +51,8 @@ # SYMBOLS-LLVM-NEXT: Size: 0 # SYMBOLS-LLVM-NEXT: Binding: Local (0x0) # SYMBOLS-LLVM-NEXT: Type: None (0x0) -# SYMBOLS-LLVM-NEXT: Other: 0 +# SYMBOLS-LLVM-NEXT: Other [ (0x0) +# SYMBOLS-LLVM-NEXT: ] # SYMBOLS-LLVM-NEXT: Section: Undefined (0x0) # SYMBOLS-LLVM-NEXT: } # SYMBOLS-LLVM-NEXT:] @@ -138,7 +141,8 @@ # STRTAB-LINK-ERR-LLVM-NEXT: Size: 0 # STRTAB-LINK-ERR-LLVM-NEXT: Binding: Local (0x0) # STRTAB-LINK-ERR-LLVM-NEXT: Type: None (0x0) -# STRTAB-LINK-ERR-LLVM-NEXT: Other: 0 +# STRTAB-LINK-ERR-LLVM-NEXT: Other [ (0x0) +# STRTAB-LINK-ERR-LLVM-NEXT: ] # STRTAB-LINK-ERR-LLVM-NEXT: Section: Undefined (0x0) # STRTAB-LINK-ERR-LLVM-NEXT: } # STRTAB-LINK-ERR-LLVM-NEXT: Symbol { @@ -147,7 +151,8 @@ # STRTAB-LINK-ERR-LLVM-NEXT: Size: 0 # STRTAB-LINK-ERR-LLVM-NEXT: Binding: Global (0x1) # STRTAB-LINK-ERR-LLVM-NEXT: Type: None (0x0) -# STRTAB-LINK-ERR-LLVM-NEXT: Other: 0 +# STRTAB-LINK-ERR-LLVM-NEXT: Other [ (0x0) +# STRTAB-LINK-ERR-LLVM-NEXT: ] # STRTAB-LINK-ERR-LLVM-NEXT: Section: .symtab (0x1) # STRTAB-LINK-ERR-LLVM-NEXT: } # STRTAB-LINK-ERR-LLVM-NEXT: ] @@ -208,7 +213,8 @@ # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Size: 0 # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Binding: Local (0x0) # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Type: None (0x0) -# SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Other: 0 +# SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Other [ (0x0) +# SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: ] # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Section: Undefined (0x0) # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: } # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Symbol { @@ -217,7 +223,8 @@ # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Size: 0 # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Binding: Global (0x1) # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Type: None (0x0) -# SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Other: 0 +# SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Other [ (0x0) +# SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: ] # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: warning: '[[FILE]]': section header string table index 255 does not exist # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: Section: (0x1) # SYMTAB-SHSTRTAB-ERR-LLVM-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/ELF/symtab-shndx.test b/llvm/test/tools/llvm-readobj/ELF/symtab-shndx.test --- a/llvm/test/tools/llvm-readobj/ELF/symtab-shndx.test +++ b/llvm/test/tools/llvm-readobj/ELF/symtab-shndx.test @@ -153,7 +153,8 @@ # NOTAG-LLVM-NEXT: Size: 0 # NOTAG-LLVM-NEXT: Binding: Local (0x0) # NOTAG-LLVM-NEXT: Type: None (0x0) -# NOTAG-LLVM-NEXT: Other: 0 +# NOTAG-LLVM-NEXT: Other [ (0x0) +# NOTAG-LLVM-NEXT: ] # NOTAG-LLVM-NEXT: warning: '[[FILE]]': found an extended symbol index (1), but unable to locate the extended symbol index table # NOTAG-LLVM-NEXT: Section: Reserved (0xFFFF) # NOTAG-LLVM-NEXT: } @@ -163,7 +164,8 @@ # NOTAG-LLVM-NEXT: Size: 0 # NOTAG-LLVM-NEXT: Binding: Local (0x0) # NOTAG-LLVM-NEXT: Type: None (0x0) -# NOTAG-LLVM-NEXT: Other: 0 +# NOTAG-LLVM-NEXT: Other [ (0x0) +# NOTAG-LLVM-NEXT: ] # NOTAG-LLVM-NEXT: warning: '[[FILE]]': found an extended symbol index (2), but unable to locate the extended symbol index table # NOTAG-LLVM-NEXT: Section: Reserved (0xFFFF) # NOTAG-LLVM-NEXT: } @@ -218,7 +220,8 @@ # MULTIPLE-LLVM-NEXT: Size: 0 # MULTIPLE-LLVM-NEXT: Binding: Local (0x0) # MULTIPLE-LLVM-NEXT: Type: None (0x0) -# MULTIPLE-LLVM-NEXT: Other: 0 +# MULTIPLE-LLVM-NEXT: Other [ (0x0) +# MULTIPLE-LLVM-NEXT: ] # MULTIPLE-LLVM-NEXT: Section: .section3 (0x3) # MULTIPLE-LLVM-NEXT: } # MULTIPLE-LLVM-NEXT: Symbol { @@ -227,7 +230,8 @@ # MULTIPLE-LLVM-NEXT: Size: 0 # MULTIPLE-LLVM-NEXT: Binding: Local (0x0) # MULTIPLE-LLVM-NEXT: Type: None (0x0) -# MULTIPLE-LLVM-NEXT: Other: 0 +# MULTIPLE-LLVM-NEXT: Other [ (0x0) +# MULTIPLE-LLVM-NEXT: ] # MULTIPLE-LLVM-NEXT: Section: .section2 (0x2) # MULTIPLE-LLVM-NEXT: } @@ -253,7 +257,8 @@ # PASTEND-LLVM-NEXT: Size: 0 # PASTEND-LLVM-NEXT: Binding: Local (0x0) # PASTEND-LLVM-NEXT: Type: None (0x0) -# PASTEND-LLVM-NEXT: Other: 0 +# PASTEND-LLVM-NEXT: Other [ (0x0) +# PASTEND-LLVM-NEXT: ] # PASTEND-LLVM-NEXT: warning: '[[FILE]]': unable to read an extended symbol table at index 2: can't read past the end of the file # PASTEND-LLVM-NEXT: Section: Reserved (0xFFFF) # PASTEND-LLVM-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/ELF/versym-invalid.test b/llvm/test/tools/llvm-readobj/ELF/versym-invalid.test --- a/llvm/test/tools/llvm-readobj/ELF/versym-invalid.test +++ b/llvm/test/tools/llvm-readobj/ELF/versym-invalid.test @@ -158,7 +158,8 @@ # INVALID-ENT-SIZE-LLVM-NEXT: Size: 0 # INVALID-ENT-SIZE-LLVM-NEXT: Binding: Local (0x0) # INVALID-ENT-SIZE-LLVM-NEXT: Type: None (0x0) -# INVALID-ENT-SIZE-LLVM-NEXT: Other: 0 +# INVALID-ENT-SIZE-LLVM-NEXT: Other [ (0x0) +# INVALID-ENT-SIZE-LLVM-NEXT: ] # INVALID-ENT-SIZE-LLVM-NEXT: Section: Undefined (0x0) # INVALID-ENT-SIZE-LLVM-NEXT: } # INVALID-ENT-SIZE-LLVM-NEXT: Symbol { @@ -167,7 +168,8 @@ # INVALID-ENT-SIZE-LLVM-NEXT: Size: 0 # INVALID-ENT-SIZE-LLVM-NEXT: Binding: Local (0x0) # INVALID-ENT-SIZE-LLVM-NEXT: Type: None (0x0) -# INVALID-ENT-SIZE-LLVM-NEXT: Other: 0 +# INVALID-ENT-SIZE-LLVM-NEXT: Other [ (0x0) +# INVALID-ENT-SIZE-LLVM-NEXT: ] # INVALID-ENT-SIZE-LLVM-NEXT: Section: Undefined (0x0) # INVALID-ENT-SIZE-LLVM-NEXT: } # INVALID-ENT-SIZE-LLVM-NEXT: ] diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -6768,36 +6768,31 @@ W.printEnum("Type", SymbolType, makeArrayRef(AMDGPUSymbolTypes)); else W.printEnum("Type", SymbolType, makeArrayRef(ElfSymbolTypes)); - if (Symbol.st_other == 0) - // Usually st_other flag is zero. Do not pollute the output - // by flags enumeration in that case. - W.printNumber("Other", 0); - else { - std::vector> SymOtherFlags(std::begin(ElfSymOtherFlags), - std::end(ElfSymOtherFlags)); - if (this->Obj.getHeader().e_machine == EM_MIPS) { - // Someones in their infinite wisdom decided to make STO_MIPS_MIPS16 - // flag overlapped with other ST_MIPS_xxx flags. So consider both - // cases separately. - if ((Symbol.st_other & STO_MIPS_MIPS16) == STO_MIPS_MIPS16) - SymOtherFlags.insert(SymOtherFlags.end(), - std::begin(ElfMips16SymOtherFlags), - std::end(ElfMips16SymOtherFlags)); - else - SymOtherFlags.insert(SymOtherFlags.end(), - std::begin(ElfMipsSymOtherFlags), - std::end(ElfMipsSymOtherFlags)); - } else if (this->Obj.getHeader().e_machine == EM_AARCH64) { + + std::vector> SymOtherFlags(std::begin(ElfSymOtherFlags), + std::end(ElfSymOtherFlags)); + if (this->Obj.getHeader().e_machine == EM_MIPS) { + // Someones in their infinite wisdom decided to make STO_MIPS_MIPS16 + // flag overlapped with other ST_MIPS_xxx flags. So consider both + // cases separately. + if ((Symbol.st_other & STO_MIPS_MIPS16) == STO_MIPS_MIPS16) SymOtherFlags.insert(SymOtherFlags.end(), - std::begin(ElfAArch64SymOtherFlags), - std::end(ElfAArch64SymOtherFlags)); - } else if (this->Obj.getHeader().e_machine == EM_RISCV) { + std::begin(ElfMips16SymOtherFlags), + std::end(ElfMips16SymOtherFlags)); + else SymOtherFlags.insert(SymOtherFlags.end(), - std::begin(ElfRISCVSymOtherFlags), - std::end(ElfRISCVSymOtherFlags)); - } - W.printFlags("Other", Symbol.st_other, makeArrayRef(SymOtherFlags), 0x3u); - } + std::begin(ElfMipsSymOtherFlags), + std::end(ElfMipsSymOtherFlags)); + } else if (this->Obj.getHeader().e_machine == EM_AARCH64) { + SymOtherFlags.insert(SymOtherFlags.end(), + std::begin(ElfAArch64SymOtherFlags), + std::end(ElfAArch64SymOtherFlags)); + } else if (this->Obj.getHeader().e_machine == EM_RISCV) { + SymOtherFlags.insert(SymOtherFlags.end(), + std::begin(ElfRISCVSymOtherFlags), + std::end(ElfRISCVSymOtherFlags)); + } + W.printFlags("Other", Symbol.st_other, makeArrayRef(SymOtherFlags), 0x3u); printSymbolSection(Symbol, SymIndex, ShndxTable); }