From bb56755f153a83387fa6c7fa0a6d7d540da41633 Mon Sep 17 00:00:00 2001 From: George Rimar Date: Sat, 17 Aug 2019 14:36:40 +0000 Subject: [llvm-readobj/llvm-readelf] - Improve/cleanup the error reporting API. urrently we have the following functions for error reporting: -- LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg); void reportError(Error Err, StringRef Input); void reportWarning(Twine Msg); void reportWarning(StringRef Input, Error Err); void warn(llvm::Error Err); void error(std::error_code EC); --- Problems are: naming is inconsistent, arguments order is inconsistent, some of the functions looks excessive. After applying this patch we have: --- LLVM_ATTRIBUTE_NORETURN void reportError(Error Err, StringRef Input); LLVM_ATTRIBUTE_NORETURN void reportError(std::error_code EC, StringRef Input); void reportWarning(Error Err, StringRef Input); --- I'd be happy to remove reportError(std::error_code EC, StringRef Input) too, but it is used by COFF heavily. Test cases were updated, they show an improvement introduced. Differential revision: https://reviews.llvm.org/D66286 llvm-svn: 369190 --- .../tools/llvm-readobj/elf-dynamic-malformed.test | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test') diff --git a/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test b/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test index 22315db7a6e..9a117281f26 100644 --- a/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test +++ b/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test @@ -3,29 +3,29 @@ # RUN: yaml2obj %s --docnum=1 -o %t.bad-size # RUN: llvm-readobj --all %t.bad-size 2>&1 \ -# RUN: | FileCheck %s --implicit-check-not=warning --check-prefix WARN +# RUN: | FileCheck %s -DFILE=%t.bad-size --implicit-check-not=warning --check-prefix WARN # RUN: llvm-readelf --all %t.bad-size 2>&1 \ -# RUN: | FileCheck %s --implicit-check-not=warning --check-prefix WARN-GNU +# RUN: | FileCheck %s -DFILE=%t.bad-size --implicit-check-not=warning --check-prefix WARN-GNU # WARN-NOT: warning -# WARN: warning: invalid section size (4) or entity size (16) +# WARN: warning: '[[FILE]]': invalid section size (4) or entity size (16) # WARN-EMPTY: # WARN-NEXT: File: # WARN: Symbols [ # WARN: ] # WARN-EMPTY: ## A warning is printed at the place where a normal dynamic table should be. -# WARN-NEXT: warning: invalid section size (4) or entity size (16) +# WARN-NEXT: warning: '[[FILE]]': invalid section size (4) or entity size (16) # WARN-NEXT: ProgramHeaders [ # WARN-GNU-NOT: warning -# WARN-GNU: warning: invalid section size (4) or entity size (16) +# WARN-GNU: warning: '[[FILE]]': invalid section size (4) or entity size (16) # WARN-GNU-NEXT: ELF Header: # WARN-GNU: Symbol table '.symtab' contains 1 entries: # WARN-GNU: 0: # WARN-GNU-EMPTY: ## A warning is printed at the place where a normal dynamic table should be. -# WARN-GNU: warning: invalid section size (4) or entity size (16) +# WARN-GNU: warning: '[[FILE]]': invalid section size (4) or entity size (16) # WARN-GNU-EMPTY: --- !ELF @@ -162,9 +162,9 @@ ProgramHeaders: ## Test handling of DT_STRTAB pointing outside the file's address space. # RUN: yaml2obj %s --docnum=4 -o %t.bad-strtab -# RUN: llvm-readobj --dynamic-table %t.bad-strtab 2>&1 >/dev/null | FileCheck %s --check-prefix BAD-STRTAB-ERR -# RUN: llvm-readelf --dynamic-table %t.bad-strtab 2>&1 >/dev/null | FileCheck %s --check-prefix BAD-STRTAB-ERR -# BAD-STRTAB-ERR: warning: Unable to parse DT_STRTAB: virtual address is not in any segment: 0x2000000 +# RUN: llvm-readobj --dynamic-table %t.bad-strtab 2>&1 >/dev/null | FileCheck -DFILE=%t.bad-strtab %s --check-prefix BAD-STRTAB-ERR +# RUN: llvm-readelf --dynamic-table %t.bad-strtab 2>&1 >/dev/null | FileCheck -DFILE=%t.bad-strtab %s --check-prefix BAD-STRTAB-ERR +# BAD-STRTAB-ERR: warning: '[[FILE]]': Unable to parse DT_STRTAB: virtual address is not in any segment: 0x2000000 # RUN: llvm-readobj --dynamic-table --needed-libs %t.bad-strtab | FileCheck %s --check-prefixes=BAD-STRTAB,BAD-STRTAB-LLVM # RUN: llvm-readelf --dynamic-table --needed-libs %t.bad-strtab | FileCheck %s --check-prefixes=BAD-STRTAB,BAD-STRTAB-GNU @@ -206,10 +206,10 @@ ProgramHeaders: ## Test handling of other d_ptr tags pointing outside the file's address space. # RUN: yaml2obj %s --docnum=5 -o %t.bad-rela -# RUN: llvm-readobj --dynamic-table %t.bad-rela 2>&1 | FileCheck %s --check-prefixes=CHECK,BAD-RELA -# RUN: llvm-readelf --dynamic-table %t.bad-rela 2>&1 | FileCheck %s --check-prefixes=CHECK,BAD-RELA-GNU +# RUN: llvm-readobj --dynamic-table %t.bad-rela 2>&1 | FileCheck -DFILE=%t.bad-rela %s --check-prefixes=CHECK,BAD-RELA +# RUN: llvm-readelf --dynamic-table %t.bad-rela 2>&1 | FileCheck -DFILE=%t.bad-rela %s --check-prefixes=CHECK,BAD-RELA-GNU -# CHECK: warning: Unable to parse DT_RELA: virtual address is not in any segment: 0x1000000 +# CHECK: warning: '[[FILE]]': Unable to parse DT_RELA: virtual address is not in any segment: 0x1000000 # BAD-RELA: DynamicSection [ (2 entries) # BAD-RELA-NEXT: Tag Type Name/Value -- cgit v1.2.3