[llvm] r355074 - [llvm-objdump] - Improve the error message for "removing a section that is used by relocation" case.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 28 00:21:50 PST 2019


Author: grimar
Date: Thu Feb 28 00:21:50 2019
New Revision: 355074

URL: http://llvm.org/viewvc/llvm-project?rev=355074&view=rev
Log:
[llvm-objdump] - Improve the error message for "removing a section that is used by relocation" case.

This refines/improves the error message introduced in D58625

Differential revision: https://reviews.llvm.org/D58709

Modified:
    llvm/trunk/test/tools/llvm-objcopy/ELF/strip-section-err.test
    llvm/trunk/tools/llvm-objcopy/ELF/Object.cpp

Modified: llvm/trunk/test/tools/llvm-objcopy/ELF/strip-section-err.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objcopy/ELF/strip-section-err.test?rev=355074&r1=355073&r2=355074&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-objcopy/ELF/strip-section-err.test (original)
+++ llvm/trunk/test/tools/llvm-objcopy/ELF/strip-section-err.test Thu Feb 28 00:21:50 2019
@@ -3,7 +3,7 @@
 
 # RUN: yaml2obj %s > %t1
 # RUN: not llvm-objcopy -R .data %t1 2>&1 | FileCheck %s
-# CHECK: error: Section .data cannot be removed because of symbol 'foo' used by the relocation patching offset 0x1 from section .rela.text.
+# CHECK: error: Section .data can't be removed: (.text+0x1) has relocation against symbol 'foo'
 
 ## Check the behavior when we also remove the relocation section.
 ## We have no reference in this case and hence no error should be emitted.

Modified: llvm/trunk/tools/llvm-objcopy/ELF/Object.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/ELF/Object.cpp?rev=355074&r1=355073&r2=355074&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/ELF/Object.cpp (original)
+++ llvm/trunk/tools/llvm-objcopy/ELF/Object.cpp Thu Feb 28 00:21:50 2019
@@ -557,12 +557,12 @@ Error RelocationSection::removeSectionRe
   for (const Relocation &R : Relocations) {
     if (!R.RelocSymbol->DefinedIn || !ToRemove(R.RelocSymbol->DefinedIn))
       continue;
-    return createStringError(
-        llvm::errc::invalid_argument,
-        "Section %s cannot be removed because of symbol '%s' "
-        "used by the relocation patching offset 0x%" PRIx64 " from section %s.",
-        R.RelocSymbol->DefinedIn->Name.data(), R.RelocSymbol->Name.c_str(),
-        R.Offset, this->Name.data());
+    return createStringError(llvm::errc::invalid_argument,
+                             "Section %s can't be removed: (%s+0x%" PRIx64
+                             ") has relocation against symbol '%s'",
+                             R.RelocSymbol->DefinedIn->Name.data(),
+                             SecToApplyRel->Name.data(), R.Offset,
+                             R.RelocSymbol->Name.c_str());
   }
 
   return Error::success();




More information about the llvm-commits mailing list