diff --git a/llvm/include/llvm/Object/ELFObjectFile.h b/llvm/include/llvm/Object/ELFObjectFile.h --- a/llvm/include/llvm/Object/ELFObjectFile.h +++ b/llvm/include/llvm/Object/ELFObjectFile.h @@ -530,10 +530,10 @@ // If the symbol name is empty use the section name. if ((*SymOrErr)->getType() == ELF::STT_SECTION) { - if (Expected SecOrErr = getSymbolSection(Sym)) { - consumeError(Name.takeError()); + Expected SecOrErr = getSymbolSection(Sym); + if (SecOrErr) return (*SecOrErr)->getName(); - } + return SecOrErr.takeError(); } return Name; } diff --git a/llvm/test/tools/llvm-objdump/ELF/section-symbols.test b/llvm/test/tools/llvm-objdump/ELF/section-symbols.test --- a/llvm/test/tools/llvm-objdump/ELF/section-symbols.test +++ b/llvm/test/tools/llvm-objdump/ELF/section-symbols.test @@ -5,12 +5,15 @@ # RUN: yaml2obj %s -o %t1 # RUN: llvm-objdump -r --syms %t1 2>&1 | \ # RUN: FileCheck %s -DFILE=%t1 --implicit-check-not=warning: +# RUN: llvm-objdump -d --syms %t1 2>&1 | \ +# RUN: FileCheck %s -DFILE=%t1 --check-prefix=CHECK-DISAS # CHECK: SYMBOL TABLE: # CHECK-NEXT: 00000000 l d .foo 00000000 .foo # CHECK-NEXT: 00000000 l d .foo 00000000 .foo # CHECK-NEXT: warning: '[[FILE]]': invalid section index: 67 # CHECK-NEXT: warning: '[[FILE]]': invalid section index: 68 +# CHECK-DISAS: warning: '[[FILE]]': invalid section index: 67 # CHECK: RELOCATION RECORDS FOR [.foo]: # CHECK-NEXT: OFFSET TYPE VALUE