]> granicus.if.org Git - llvm/commitdiff
[llvm-objcopy] Tidy up error messages
authorJames Henderson <jh7370@my.bristol.ac.uk>
Wed, 22 May 2019 13:23:26 +0000 (13:23 +0000)
committerJames Henderson <jh7370@my.bristol.ac.uk>
Wed, 22 May 2019 13:23:26 +0000 (13:23 +0000)
This patch brings various error messages into line with each other, by
removing trailing full stops, and making the first letter lower-case.
This addresses https://bugs.llvm.org/show_bug.cgi?id=40859.

Reviewed by: jhenderson, rupprecht, jakehehrlich

Differential Revision: https://reviews.llvm.org/D62072

Patch by Alex Brachet

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361384 91177308-0d34-0410-b5e6-96231b3b80d8

27 files changed:
test/tools/llvm-objcopy/COFF/remove-section.test
test/tools/llvm-objcopy/COFF/strip-reloc-symbol.test
test/tools/llvm-objcopy/COFF/weak-external.test
test/tools/llvm-objcopy/ELF/bad-build-id.test
test/tools/llvm-objcopy/ELF/binary-out-error.test
test/tools/llvm-objcopy/ELF/discard-locals-rel.test
test/tools/llvm-objcopy/ELF/dump-section.test
test/tools/llvm-objcopy/ELF/dynrelocsec-remove-shlink-reference.test
test/tools/llvm-objcopy/ELF/dynsym-error-remove-strtab.test
test/tools/llvm-objcopy/ELF/group-addr-misaligned.test
test/tools/llvm-objcopy/ELF/hexagon-unsupported-on-x86.test
test/tools/llvm-objcopy/ELF/no-build-id-no-notes.test
test/tools/llvm-objcopy/ELF/no-build-id.test
test/tools/llvm-objcopy/ELF/reloc-error-remove-symtab.test
test/tools/llvm-objcopy/ELF/remove-linked-section.test
test/tools/llvm-objcopy/ELF/remove-shstrtab-error.test
test/tools/llvm-objcopy/ELF/section-index-unsupported.test
test/tools/llvm-objcopy/ELF/strip-group-symbol.test
test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test
test/tools/llvm-objcopy/ELF/strip-section-err.test
test/tools/llvm-objcopy/ELF/symtab-error-on-remove-strtab.test
tools/llvm-objcopy/COFF/COFFObjcopy.cpp
tools/llvm-objcopy/COFF/Object.cpp
tools/llvm-objcopy/COFF/Reader.cpp
tools/llvm-objcopy/COFF/Writer.cpp
tools/llvm-objcopy/ELF/ELFObjcopy.cpp
tools/llvm-objcopy/ELF/Object.cpp

index 6dc8f6a6c2e36ec235e66c92a8dcf83ea60d61e5..58ff574181acd07e53f28742af40d41a4e3311c3 100644 (file)
@@ -96,7 +96,7 @@
 # Removing the .comdat section fails, since the .text section has relocations
 # against it.
 #
-# ERROR-RELOC: Relocation target 'foo' ({{.*}}) not found
+# ERROR-RELOC: relocation target 'foo' ({{.*}}) not found
 #
 #
 # Removing the .comdat section and .text (with a relocation against .comdat)
index ba1dfb00efdf39ed6d91d8d7c0ac60efc016fd6e..9be4ab83521e0d1170f5f914a35ebd325a8d7766 100644 (file)
@@ -2,4 +2,4 @@ RUN: yaml2obj %p/Inputs/strip-symbols.yaml > %t.o
 RUN: not llvm-objcopy -N foo %t.o 2>&1 | FileCheck %s --check-prefix=ERROR
 RUN: not llvm-objcopy --strip-symbol foo %t.o 2>&1 | FileCheck %s --check-prefix=ERROR
 
-ERROR: error: '{{.*}}{{/|\\}}strip-reloc-symbol.test.tmp.o': not stripping symbol 'foo' because it is named in a relocation.
+ERROR: error: '{{.*}}{{/|\\}}strip-reloc-symbol.test.tmp.o': not stripping symbol 'foo' because it is named in a relocation
index d36a53b4eb1b93348bca44134bb583eb7f64f57e..b5a311fbfb6c193d9531f4d855c10baccd04a3b0 100644 (file)
@@ -15,7 +15,7 @@
 # SYMBOLS-POST-NEXT: AUX indx 0
 # SYMBOLS-EMPTY:
 
-# ERROR: Symbol 'foobar' is missing its weak target
+# ERROR: symbol 'foobar' is missing its weak target
 
 --- !COFF
 header:          
index e5e9b9556502546a17aabf1ec9388755bb070195..13c4b1685e015c336909830a68d5a3d6704b64b2 100644 (file)
@@ -1,7 +1,7 @@
 # RUN: yaml2obj %s > %t
 # RUN: not llvm-objcopy --build-id-link-dir=%t-dir --build-id-link-input=.debug %t 2>&1 >/dev/null | FileCheck %s
 
-# CHECK: build ID is smaller than two bytes.
+# CHECK: build ID is smaller than two bytes
 
 --- !ELF
 FileHeader:
index 820b8f73edf8995528b5136d7502c9233b43ed58..36caa3fafb217124261ec850ec1aa4512f8a0176 100644 (file)
@@ -1,2 +1,2 @@
 # RUN: not llvm-objcopy -O binary %p/Inputs/alloc-symtab.o %t2 2>&1 >/dev/null | FileCheck %s --check-prefix=SYMTAB
-# SYMTAB: Cannot write symbol table '.symtab' out to binary
+# SYMTAB: cannot write symbol table '.symtab' out to binary
index 8ae941faeea9791dc53b2ea2a92c77dd64929481..5fce41d2fd7c27d4b23f953d8755faf39042d0a4 100644 (file)
@@ -23,4 +23,4 @@ Symbols:
     Type:     STT_FUNC
     Section:  .text
 
-# CHECK: not stripping symbol '.L.rel' because it is named in a relocation.
+# CHECK: not stripping symbol '.L.rel' because it is named in a relocation
index 7a25f9cf926f32142c9e79d384760f527384db50..7547fa0395c1bf23223214819ac3e209edc21ce7 100644 (file)
@@ -41,4 +41,4 @@ ProgramHeaders:
 
 #SIZE: 4
 
-#NOBITS: Can't dump section ".bar": it has no contents
+#NOBITS: cannot dump section '.bar': it has no contents
index d813d30277fd460cb673307ce5bbf392ec527198..1f07fdf3496f2016652bd1e948a22e9b32bf3b36 100644 (file)
@@ -3,7 +3,7 @@
 ## Check we cannot remove the .dynsym symbol table because dynamic\r
 ## relocation section .rela.dyn still references it via sh_link field.\r
 # RUN: not llvm-objcopy -R .dynsym %t %t2 2>&1 >/dev/null | FileCheck %s --check-prefix=ERR\r
-# ERR: error: Symbol table .dynsym cannot be removed because it is referenced by the relocation section .rela.dyn.\r
+# ERR: error: symbol table '.dynsym' cannot be removed because it is referenced by the relocation section '.rela.dyn'\r
 \r
 ## Check we can remove .dynsym after removing the reference.\r
 # RUN: llvm-objcopy -R .dynsym -R .rela.dyn %t %t2\r
index bab78ea3dd3177213c7ae42c0d1b70dbbfdf4731..0a2964bb50f3aff1cf88c3b7e337e364fc559589 100644 (file)
@@ -2,7 +2,7 @@
 # RUN: cp  %p/Inputs/dynsym.so %t2
 # RUN: not llvm-strip --no-strip-all -R .dynstr %t2 2>&1 >/dev/null | FileCheck %s --check-prefix=ERR
 
-# ERR: Section .dynstr cannot be removed because it is referenced by the section .dynsym
+# ERR: section '.dynstr' cannot be removed because it is referenced by the section '.dynsym'
 
 # RUN: llvm-objcopy --allow-broken-links -R .dynstr %p/Inputs/dynsym.so %t3
 # RUN: llvm-objdump --section-headers %t3 | FileCheck %s --check-prefix=SECTIONS --implicit-check-not=.dynstr
index a954e08194f111bbee276a18f2bdbce98cc6ad01..bedef1ca7a5dd5c41ff74fe0b2c7038002c9fa01 100644 (file)
@@ -1,6 +1,6 @@
 # RUN: yaml2obj %s > %t
 # RUN: not llvm-objcopy %t %t2 2>&1 | FileCheck %s
-# CHECK: error: Invalid alignment 1 of group section .group.
+# CHECK: error: invalid alignment 1 of group section '.group'
 
 # In this test, we check that llvm-objcopy reports an error
 # for SHT_GROUP section with invalid alignment (not a multiple of 4). 
index 9787e6b6ab59f9a3bf9ee1099874a637ae8d9fca..70a477c6e36aad85efc182219283e58b7cdad620 100644 (file)
@@ -12,4 +12,4 @@ Symbols:
     Index:    SHN_HEXAGON_SCOMMON
     Binding:  STB_GLOBAL
 
-# CHECK: Symbol 'test' has unsupported value greater than or equal to SHN_LORESERVE: 65280
+# CHECK: symbol 'test' has unsupported value greater than or equal to SHN_LORESERVE: 65280
index 357e0cdba4883b6d3e2dd48a9a9c849f7c586b6e..be266fe71c52cd6aea60fc561a1a54b0cb232d14 100644 (file)
@@ -1,7 +1,7 @@
 # RUN: yaml2obj %s > %t
 # RUN: not llvm-objcopy --build-id-link-dir=%t-dir --build-id-link-input=.debug %t 2>&1 >/dev/null | FileCheck %s
 
-# CHECK: Could not find build ID.
+# CHECK: could not find build ID
 
 --- !ELF
 FileHeader:
index e555b102bbc698da42de400374cdd0704531e7af..24aa4c12f3eca35ea819dcf9f94d5b28eaa774dc 100644 (file)
@@ -1,7 +1,7 @@
 # RUN: yaml2obj %s > %t
 # RUN: not llvm-objcopy --build-id-link-dir=%t-dir --build-id-link-input=.debug %t 2>&1 >/dev/null | FileCheck %s
 
-# CHECK: Could not find build ID.
+# CHECK: could not find build ID
 
 --- !ELF
 FileHeader:
index 272e325e97c7332407ddb95bb74e5deccaf5c6f4..0724abfd6b63a073fb01fa8b7c63ee969d9414d6 100644 (file)
@@ -31,7 +31,7 @@ Symbols:
     Size:     4
     Binding:  STB_GLOBAL
 
-# ERR: Symbol table .symtab cannot be removed because it is referenced by the relocation section .rel.text.
+# ERR: symbol table '.symtab' cannot be removed because it is referenced by the relocation section '.rel.text'
 
 # RUN: llvm-objcopy --allow-broken-links -R .symtab %t %t4
 # RUN: llvm-readobj --sections %t4 | FileCheck %s --check-prefix=SECTIONS --implicit-check-not=.symtab
index 80939af918d07767507c816b34b9ece043514905..909c6d06647167d8c307934fd09b62096bd64917 100644 (file)
@@ -16,7 +16,7 @@ Sections:
     Type:            SHT_PROGBITS
     Link:            .foo
 
-# ERR: Section .foo cannot be removed because it is referenced by the section .bar
+# ERR: section '.foo' cannot be removed because it is referenced by the section '.bar'
 
 # RUN: llvm-objcopy --allow-broken-links -R .foo %t.o %t3
 # RUN: llvm-readobj --sections %t3 | FileCheck %s --check-prefix=SECTIONS --implicit-check-not=.foo
index 1ce6f5db9cda089fb579a51e2d5babbb3814b42c..4b7bc0eab017eb590f7a03d7f7e058dbc329d78a 100644 (file)
@@ -8,4 +8,4 @@ FileHeader:
   Type:            ET_REL
   Machine:         EM_X86_64
 
-# CHECK: Cannot write section header table because section header string table was removed.
+# CHECK: cannot write section header table because section header string table was removed
index f01fea893d2d354031c448dc01cfb58f5b430202..6c60bf5547e3a146229f60756fb3869928a57d4a 100644 (file)
@@ -12,4 +12,4 @@ Symbols:
     Index:    0xff05
     Binding:  STB_GLOBAL
 
-# CHECK: Symbol 'test' has unsupported value greater than or equal to SHN_LORESERVE: 65285
+# CHECK: symbol 'test' has unsupported value greater than or equal to SHN_LORESERVE: 65285
index d727ec6be08b88db3521d64fa9ad2a103eb0b663..acca56c7cef3d0255996c9d113a30ddd937f0b55 100644 (file)
@@ -28,4 +28,4 @@ Symbols:
     Section: .text
     Binding: STB_WEAK
 
-#CHECK: Symbol foo cannot be removed because it is referenced by the section .group[1].
+# CHECK: symbol 'foo' cannot be removed because it is referenced by the section '.group[1]'
index db1e46cf2a32163eba4ae9c7346ddd013b45cf5c..99b5d51c0e883530fff04805c9c35946793afff0 100644 (file)
@@ -28,4 +28,4 @@ Symbols:
     Value:    0x1000
     Size:     8
 
-#CHECK: not stripping symbol 'foo' because it is named in a relocation.
+# CHECK: not stripping symbol 'foo' because it is named in a relocation
index 25e93aecccdbc8de4e81793da93db63065461294..b0ee7573c2a43afe37ad5713a64439974577d3ea 100644 (file)
@@ -3,7 +3,7 @@
 
 # RUN: yaml2obj %s > %t1
 # RUN: not llvm-objcopy -R .data %t1 2>&1 | FileCheck %s
-# CHECK: error: Section .data can't be removed: (.text+0x1) has relocation against symbol 'foo'
+# CHECK: error: section '.data' cannot 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.
index d0916c8e510688c4dbe2819f82cb4f102ad1bffe..cb4cc26e3f0607231f9c6bc825a84657c7a386c3 100644 (file)
@@ -10,7 +10,7 @@ FileHeader:
   Type:            ET_REL
   Machine:         EM_X86_64
 
-# ERR: String table .strtab cannot be removed because it is referenced by the symbol table .symtab
+# ERR: string table '.strtab' cannot be removed because it is referenced by the symbol table '.symtab'
 
 # RUN: llvm-objcopy --allow-broken-links -R .strtab %t %t4
 # RUN: llvm-objdump --section-headers %t4 | FileCheck %s --check-prefix=SECTIONS --implicit-check-not=.strtab
index 1f5509e03c2ebf09872827500bd26508754b33a7..4ae46851a66fa2c5478328aae0f43113ed18dafd 100644 (file)
@@ -143,7 +143,7 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) {
         reportError(Config.OutputFilename,
                     createStringError(llvm::errc::invalid_argument,
                                       "not stripping symbol '%s' because it is "
-                                      "named in a relocation.",
+                                      "named in a relocation",
                                       Sym.Name.str().c_str()));
       return true;
     }
@@ -189,7 +189,7 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj) {
       Config.DiscardMode == DiscardType::Locals ||
       !Config.SymbolsToAdd.empty() || Config.EntryExpr) {
     return createStringError(llvm::errc::invalid_argument,
-                             "Option not supported by llvm-objcopy for COFF");
+                             "option not supported by llvm-objcopy for COFF");
   }
 
   return Error::success();
index 0ad5a05a14441f3aea0beb089648c25fca1830e1..b07532c1dc3930043082d2c617251b9d042ebca4 100644 (file)
@@ -53,7 +53,7 @@ Error Object::markSymbols() {
       auto It = SymbolMap.find(R.Target);
       if (It == SymbolMap.end())
         return createStringError(object_error::invalid_symbol_index,
-                                 "Relocation target %zu not found", R.Target);
+                                 "relocation target %zu not found", R.Target);
       It->second->Referenced = true;
     }
   }
index a9511c5bd5958b7a151305a8312811d683442cff..1f0ec9fa9691b9dad636d9bfd3225dd5df8a4833 100644 (file)
@@ -81,7 +81,7 @@ Error COFFReader::readSections(Object &Obj) const {
       return NameOrErr.takeError();
     if (Sec->hasExtendedRelocations())
       return createStringError(object_error::parse_failed,
-                               "Extended relocations not supported yet");
+                               "extended relocations not supported yet");
   }
   Obj.addSections(Sections);
   return Error::success();
@@ -135,7 +135,7 @@ Error COFFReader::readSymbols(Object &Obj, bool IsBigObj) const {
       Sym.TargetSectionId = Sections[SymRef.getSectionNumber() - 1].UniqueId;
     else
       return createStringError(object_error::parse_failed,
-                               "Section number out of range");
+                               "section number out of range");
     // For section definitions, check if it is comdat associative, and if
     // it is, find the target section unique id.
     const coff_aux_section_definition *SD = SymRef.getSectionDefinition();
@@ -144,7 +144,7 @@ Error COFFReader::readSymbols(Object &Obj, bool IsBigObj) const {
       int32_t Index = SD->getNumber(IsBigObj);
       if (Index <= 0 || static_cast<uint32_t>(Index - 1) >= Sections.size())
         return createStringError(object_error::parse_failed,
-                                 "Unexpected associative section index");
+                                 "unexpected associative section index");
       Sym.AssociativeComdatTargetSectionId = Sections[Index - 1].UniqueId;
     } else if (WE) {
       // This is a raw symbol index for now, but store it in the Symbol
@@ -171,11 +171,11 @@ Error COFFReader::setSymbolTargets(Object &Obj) const {
     if (Sym.WeakTargetSymbolId) {
       if (*Sym.WeakTargetSymbolId >= RawSymbolTable.size())
         return createStringError(object_error::parse_failed,
-                                 "Weak external reference out of range");
+                                 "weak external reference out of range");
       const Symbol *Target = RawSymbolTable[*Sym.WeakTargetSymbolId];
       if (Target == nullptr)
         return createStringError(object_error::parse_failed,
-                                 "Invalid SymbolTableIndex");
+                                 "invalid SymbolTableIndex");
       Sym.WeakTargetSymbolId = Target->UniqueId;
     }
   }
@@ -187,7 +187,7 @@ Error COFFReader::setSymbolTargets(Object &Obj) const {
       const Symbol *Sym = RawSymbolTable[R.Reloc.SymbolTableIndex];
       if (Sym == nullptr)
         return createStringError(object_error::parse_failed,
-                                 "Invalid SymbolTableIndex");
+                                 "invalid SymbolTableIndex");
       R.Target = Sym->UniqueId;
       R.TargetName = Sym->Name;
     }
@@ -208,7 +208,7 @@ Expected<std::unique_ptr<Object>> COFFReader::create() const {
   } else {
     if (!CBFH)
       return createStringError(object_error::parse_failed,
-                               "No COFF file header returned");
+                               "no COFF file header returned");
     // Only copying the few fields from the bigobj header that we need
     // and won't recreate in the end.
     Obj->CoffFileHeader.Machine = CBFH->Machine;
index e3dbe67657daecaee6e0886ec6a368134f570a9c..f3bb1ce331f21389493b5b515c6883936b6cb883 100644 (file)
@@ -29,7 +29,7 @@ Error COFFWriter::finalizeRelocTargets() {
       const Symbol *Sym = Obj.findSymbol(R.Target);
       if (Sym == nullptr)
         return createStringError(object_error::invalid_symbol_index,
-                                 "Relocation target '%s' (%zu) not found",
+                                 "relocation target '%s' (%zu) not found",
                                  R.TargetName.str().c_str(), R.Target);
       R.Reloc.SymbolTableIndex = Sym->RawIndex;
     }
@@ -47,7 +47,7 @@ Error COFFWriter::finalizeSymbolContents() {
       const Section *Sec = Obj.findSection(Sym.TargetSectionId);
       if (Sec == nullptr)
         return createStringError(object_error::invalid_symbol_index,
-                                 "Symbol '%s' points to a removed section",
+                                 "symbol '%s' points to a removed section",
                                  Sym.Name.str().c_str());
       Sym.Sym.SectionNumber = Sec->Index;
 
@@ -66,7 +66,7 @@ Error COFFWriter::finalizeSymbolContents() {
           if (Sec == nullptr)
             return createStringError(
                 object_error::invalid_symbol_index,
-                "Symbol '%s' is associative to a removed section",
+                "symbol '%s' is associative to a removed section",
                 Sym.Name.str().c_str());
           SDSectionNumber = Sec->Index;
         }
@@ -83,7 +83,7 @@ Error COFFWriter::finalizeSymbolContents() {
       const Symbol *Target = Obj.findSymbol(*Sym.WeakTargetSymbolId);
       if (Target == nullptr)
         return createStringError(object_error::invalid_symbol_index,
-                                 "Symbol '%s' is missing its weak target",
+                                 "symbol '%s' is missing its weak target",
                                  Sym.Name.str().c_str());
       WE->TagIndex = Target->RawIndex;
     }
@@ -383,7 +383,7 @@ Error COFFWriter::patchDebugDirectory() {
       if (Dir->RelativeVirtualAddress + Dir->Size >
           S.Header.VirtualAddress + S.Header.SizeOfRawData)
         return createStringError(object_error::parse_failed,
-                                 "Debug directory extends past end of section");
+                                 "debug directory extends past end of section");
 
       size_t Offset = Dir->RelativeVirtualAddress - S.Header.VirtualAddress;
       uint8_t *Ptr = Buf.getBufferStart() + S.Header.PointerToRawData + Offset;
@@ -400,14 +400,14 @@ Error COFFWriter::patchDebugDirectory() {
     }
   }
   return createStringError(object_error::parse_failed,
-                           "Debug directory not found");
+                           "debug directory not found");
 }
 
 Error COFFWriter::write() {
   bool IsBigObj = Obj.getSections().size() > MaxNumberOfSections16;
   if (IsBigObj && Obj.IsPE)
     return createStringError(object_error::parse_failed,
-                             "Too many sections for executable");
+                             "too many sections for executable");
   return write(IsBigObj);
 }
 
index 072e5f074d138e391adb26de21be98bba234d83a..b14af2c128b001f658695d645155f578486ca91f 100644 (file)
@@ -168,7 +168,7 @@ findBuildID(const object::ELFFile<ELFT> &In) {
       return std::move(Err);
   }
   return createStringError(llvm::errc::invalid_argument,
-                           "Could not find build ID.");
+                           "could not find build ID");
 }
 
 static Expected<ArrayRef<uint8_t>>
@@ -186,7 +186,7 @@ findBuildID(const object::ELFObjectFileBase &In) {
 }
 
 template <class... Ts>
-static Error makeStringError(std::error_code EC, const Twine &Msg, Ts&&... Args) {
+static Error makeStringError(std::error_code EC, const Twine &Msg, Ts &&... Args) {
   std::string FullMsg = (EC.message() + ": " + Msg).str();
   return createStringError(EC, FullMsg.c_str(), std::forward<Ts>(Args)...);
 }
@@ -222,16 +222,16 @@ static Error linkToBuildIdDir(const CopyConfig &Config, StringRef ToLink,
                             /*MakeAbsolute*/ false);
   if (auto EC = sys::fs::create_hard_link(ToLink, TmpPath)) {
     Path.push_back('\0');
-    return makeStringError(EC, "cannot link %s to %s", ToLink.data(),
-                             Path.data());
+    return makeStringError(EC, "cannot link '%s' to '%s'", ToLink.data(),
+                           Path.data());
   }
   // We then atomically rename the link into place which will just move the
   // link. If rename fails something is more seriously wrong so just return
   // an error.
   if (auto EC = sys::fs::rename(TmpPath, Path)) {
     Path.push_back('\0');
-    return makeStringError(EC, "cannot link %s to %s", ToLink.data(),
-                             Path.data());
+    return makeStringError(EC, "cannot link '%s' to '%s'", ToLink.data(),
+                           Path.data());
   }
   // If `Path` was already a hard-link to the same underlying file then the
   // temp file will be left so we need to remove it. Remove will not cause
@@ -239,7 +239,7 @@ static Error linkToBuildIdDir(const CopyConfig &Config, StringRef ToLink,
   // it rather than checking.
   if (auto EC = sys::fs::remove(TmpPath)) {
     TmpPath.push_back('\0');
-    return makeStringError(EC, "could not remove %s", TmpPath.data());
+    return makeStringError(EC, "could not remove '%s'", TmpPath.data());
   }
   return Error::success();
 }
@@ -250,7 +250,7 @@ static Error splitDWOToFile(const CopyConfig &Config, const Reader &Reader,
   auto OnlyKeepDWOPred = [&DWOFile](const SectionBase &Sec) {
     return onlyKeepDWOPred(*DWOFile, Sec);
   };
-  if (Error E = DWOFile->removeSections(Config.AllowBrokenLinks,
+  if (Error E = DWOFile->removeSections(Config.AllowBrokenLinks, 
                                         OnlyKeepDWOPred))
     return E;
   if (Config.OutputArch) {
@@ -269,10 +269,9 @@ static Error dumpSectionToFile(StringRef SecName, StringRef Filename,
   for (auto &Sec : Obj.sections()) {
     if (Sec.Name == SecName) {
       if (Sec.OriginalData.empty())
-        return createStringError(
-            object_error::parse_failed,
-            "Can't dump section \"%s\": it has no contents",
-            SecName.str().c_str());
+        return createStringError(object_error::parse_failed,
+                                 "cannot dump section '%s': it has no contents",
+                                 SecName.str().c_str());
       Expected<std::unique_ptr<FileOutputBuffer>> BufferOrErr =
           FileOutputBuffer::create(Filename, Sec.OriginalData.size());
       if (!BufferOrErr)
@@ -285,7 +284,8 @@ static Error dumpSectionToFile(StringRef SecName, StringRef Filename,
       return Error::success();
     }
   }
-  return createStringError(object_error::parse_failed, "Section not found");
+  return createStringError(object_error::parse_failed, "section '%s' not found",
+                           SecName.str().c_str());
 }
 
 static bool isCompressable(const SectionBase &Section) {
@@ -534,11 +534,11 @@ static Error replaceAndRemoveSections(const CopyConfig &Config, Object &Obj) {
   }
 
   if (Config.CompressionType != DebugCompressionType::None)
-    replaceDebugSections(Obj, RemovePred, isCompressable,
+    replaceDebugSections(Obj, RemovePred, isCompressable, 
                          [&Config, &Obj](const SectionBase *S) {
                            return &Obj.addSection<CompressedSection>(
-                               *S, Config.CompressionType);
-                         });
+                                *S, Config.CompressionType);
+                        });
   else if (Config.DecompressDebugSections)
     replaceDebugSections(
         Obj, RemovePred,
@@ -600,13 +600,13 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj,
           Sec.Name = (Config.AllocSectionsPrefix + Sec.Name).str();
           PrefixedSections.insert(&Sec);
 
-        // Rename relocation sections associated to the allocated sections.
-        // For example, if we rename .text to .prefix.text, we also rename
-        // .rel.text to .rel.prefix.text.
-        //
-        // Dynamic relocation sections (SHT_REL[A] with SHF_ALLOC) are handled
-        // above, e.g., .rela.plt is renamed to .prefix.rela.plt, not
-        // .rela.prefix.plt since GNU objcopy does so.
+          // Rename relocation sections associated to the allocated sections.
+          // For example, if we rename .text to .prefix.text, we also rename
+          // .rel.text to .rel.prefix.text.
+          //
+          // Dynamic relocation sections (SHT_REL[A] with SHF_ALLOC) are handled
+          // above, e.g., .rela.plt is renamed to .prefix.rela.plt, not
+          // .rela.prefix.plt since GNU objcopy does so.
         } else if (auto *RelocSec = dyn_cast<RelocationSectionBase>(&Sec)) {
           auto *TargetSec = RelocSec->getSection();
           if (TargetSec && (TargetSec->Flags & SHF_ALLOC)) {
@@ -735,7 +735,7 @@ Error executeObjcopyOnBinary(const CopyConfig &Config,
       return createFileError(
           Config.InputFilename,
           createStringError(object_error::parse_failed,
-                            "build ID is smaller than two bytes."));
+                            "build ID is smaller than two bytes"));
   }
 
   if (!Config.BuildIdLinkDir.empty() && Config.BuildIdLinkInput)
index 09d6d8274652ea46d7cd942d1b6fdbef24729498..b0f7c1e3c35fcd6d6c320622e9e261ed2d268af7 100644 (file)
@@ -124,23 +124,23 @@ template <class ELFT>
 void ELFSectionSizer<ELFT>::visit(DecompressedSection &Sec) {}
 
 void BinarySectionWriter::visit(const SectionIndexSection &Sec) {
-  error("Cannot write symbol section index table '" + Sec.Name + "' ");
+  error("cannot write symbol section index table '" + Sec.Name + "' ");
 }
 
 void BinarySectionWriter::visit(const SymbolTableSection &Sec) {
-  error("Cannot write symbol table '" + Sec.Name + "' out to binary");
+  error("cannot write symbol table '" + Sec.Name + "' out to binary");
 }
 
 void BinarySectionWriter::visit(const RelocationSection &Sec) {
-  error("Cannot write relocation section '" + Sec.Name + "' out to binary");
+  error("cannot write relocation section '" + Sec.Name + "' out to binary");
 }
 
 void BinarySectionWriter::visit(const GnuDebugLinkSection &Sec) {
-  error("Cannot write '" + Sec.Name + "' out to binary");
+  error("cannot write '" + Sec.Name + "' out to binary");
 }
 
 void BinarySectionWriter::visit(const GroupSection &Sec) {
-  error("Cannot write '" + Sec.Name + "' out to binary");
+  error("cannot write '" + Sec.Name + "' out to binary");
 }
 
 void SectionWriter::visit(const Section &Sec) {
@@ -202,7 +202,7 @@ void ELFSectionWriter<ELFT>::visit(const DecompressedSection &Sec) {
 }
 
 void BinarySectionWriter::visit(const DecompressedSection &Sec) {
-  error("Cannot write compressed section '" + Sec.Name + "' ");
+  error("cannot write compressed section '" + Sec.Name + "' ");
 }
 
 void DecompressedSection::accept(SectionVisitor &Visitor) const {
@@ -222,7 +222,7 @@ void OwnedDataSection::accept(MutableSectionVisitor &Visitor) {
 }
 
 void BinarySectionWriter::visit(const CompressedSection &Sec) {
-  error("Cannot write compressed section '" + Sec.Name + "' ");
+  error("cannot write compressed section '" + Sec.Name + "' ");
 }
 
 template <class ELFT>
@@ -433,8 +433,8 @@ Error SymbolTableSection::removeSectionReferences(
     if (!AllowBrokenLinks)
       return createStringError(
           llvm::errc::invalid_argument,
-          "String table %s cannot be removed because it is "
-          "referenced by the symbol table %s",
+          "string table '%s' cannot be removed because it is "
+          "referenced by the symbol table '%s'",
           SymbolNames->Name.data(), this->Name.data());
     SymbolNames = nullptr;
   }
@@ -523,7 +523,7 @@ void SymbolTableSection::fillShndxTable() {
 
 const Symbol *SymbolTableSection::getSymbolByIndex(uint32_t Index) const {
   if (Symbols.size() <= Index)
-    error("Invalid symbol index: " + Twine(Index));
+    error("invalid symbol index: " + Twine(Index));
   return Symbols[Index].get();
 }
 
@@ -565,8 +565,8 @@ Error RelocationSection::removeSectionReferences(
     if (!AllowBrokenLinks)
       return createStringError(
           llvm::errc::invalid_argument,
-          "Symbol table %s cannot be removed because it is "
-          "referenced by the relocation section %s.",
+          "symbol table '%s' cannot be removed because it is "
+          "referenced by the relocation section '%s'",
           Symbols->Name.data(), this->Name.data());
     Symbols = nullptr;
   }
@@ -575,7 +575,7 @@ Error RelocationSection::removeSectionReferences(
     if (!R.RelocSymbol->DefinedIn || !ToRemove(R.RelocSymbol->DefinedIn))
       continue;
     return createStringError(llvm::errc::invalid_argument,
-                             "Section %s can't be removed: (%s+0x%" PRIx64
+                             "section '%s' cannot be removed: (%s+0x%" PRIx64
                              ") has relocation against symbol '%s'",
                              R.RelocSymbol->DefinedIn->Name.data(),
                              SecToApplyRel->Name.data(), R.Offset,
@@ -653,7 +653,7 @@ Error RelocationSection::removeSymbols(
     if (ToRemove(*Reloc.RelocSymbol))
       return createStringError(
           llvm::errc::invalid_argument,
-          "not stripping symbol '%s' because it is named in a relocation.",
+          "not stripping symbol '%s' because it is named in a relocation",
           Reloc.RelocSymbol->Name.data());
   return Error::success();
 }
@@ -680,37 +680,37 @@ void DynamicRelocationSection::accept(SectionVisitor &Visitor) const {
 }
 
 void DynamicRelocationSection::accept(MutableSectionVisitor &Visitor) {
-  Visitor.visit(*this);\r
-}\r
-\r
-Error DynamicRelocationSection::removeSectionReferences(\r
-    bool AllowBrokenLinks, function_ref<bool(const SectionBase *)> ToRemove) {\r
-  if (ToRemove(Symbols)) {\r
-    if (!AllowBrokenLinks)\r
-      return createStringError(\r
-          llvm::errc::invalid_argument,\r
-          "Symbol table %s cannot be removed because it is "\r
-          "referenced by the relocation section %s.",\r
-          Symbols->Name.data(), this->Name.data());\r
-    Symbols = nullptr;\r
-  }\r
-\r
-  // SecToApplyRel contains a section referenced by sh_info field. It keeps\r
-  // a section to which the relocation section applies. When we remove any\r
-  // sections we also remove their relocation sections. Since we do that much\r
-  // earlier, this assert should never be triggered.\r
-  assert(!SecToApplyRel || !ToRemove(SecToApplyRel));\r
-\r
-  return Error::success();\r
-}\r
-\r
-Error Section::removeSectionReferences(bool AllowBrokenDependency,\r
-    function_ref<bool(const SectionBase *)> ToRemove) {\r
-  if (ToRemove(LinkSection)) {\r
+  Visitor.visit(*this);
+}
+
+Error DynamicRelocationSection::removeSectionReferences(
+    bool AllowBrokenLinks, function_ref<bool(const SectionBase *)> ToRemove) {
+  if (ToRemove(Symbols)) {
+    if (!AllowBrokenLinks)
+      return createStringError(
+          llvm::errc::invalid_argument,
+          "symbol table '%s' cannot be removed because it is "
+          "referenced by the relocation section '%s'",
+          Symbols->Name.data(), this->Name.data());
+    Symbols = nullptr;
+  }
+
+  // SecToApplyRel contains a section referenced by sh_info field. It keeps
+  // a section to which the relocation section applies. When we remove any
+  // sections we also remove their relocation sections. Since we do that much
+  // earlier, this assert should never be triggered.
+  assert(!SecToApplyRel || !ToRemove(SecToApplyRel));
+
+  return Error::success();
+}
+
+Error Section::removeSectionReferences(bool AllowBrokenDependency,
+    function_ref<bool(const SectionBase *)> ToRemove) {
+  if (ToRemove(LinkSection)) {
     if (!AllowBrokenDependency)
       return createStringError(llvm::errc::invalid_argument,
-                               "Section %s cannot be removed because it is "
-                               "referenced by the section %s",
+                               "section '%s' cannot be removed because it is "
+                               "referenced by the section '%s'",
                                LinkSection->Name.data(), this->Name.data());
     LinkSection = nullptr;
   }
@@ -725,8 +725,8 @@ void GroupSection::finalize() {
 Error GroupSection::removeSymbols(function_ref<bool(const Symbol &)> ToRemove) {
   if (ToRemove(*Sym))
     return createStringError(llvm::errc::invalid_argument,
-                             "Symbol %s cannot be removed because it is "
-                             "referenced by the section %s[%d].",
+                             "symbol '%s' cannot be removed because it is "
+                             "referenced by the section '%s[%d]'",
                              Sym->Name.data(), this->Name.data(), this->Index);
   return Error::success();
 }
@@ -996,24 +996,24 @@ template <class ELFT> void ELFBuilder<ELFT>::readProgramHeaders() {
 template <class ELFT>
 void ELFBuilder<ELFT>::initGroupSection(GroupSection *GroupSec) {
   if (GroupSec->Align % sizeof(ELF::Elf32_Word) != 0)
-    error("Invalid alignment " + Twine(GroupSec->Align) + " of group section " +
-          GroupSec->Name);
+    error("invalid alignment " + Twine(GroupSec->Align) + " of group section '" +
+          GroupSec->Name + "'");
   auto SecTable = Obj.sections();
   auto SymTab = SecTable.template getSectionOfType<SymbolTableSection>(
       GroupSec->Link,
-      "Link field value " + Twine(GroupSec->Link) + " in section " +
-          GroupSec->Name + " is invalid",
-      "Link field value " + Twine(GroupSec->Link) + " in section " +
-          GroupSec->Name + " is not a symbol table");
+      "link field value '" + Twine(GroupSec->Link) + "' in section '" +
+          GroupSec->Name + "' is invalid",
+      "link field value '" + Twine(GroupSec->Link) + "' in section '" +
+          GroupSec->Name + "' is not a symbol table");
   auto Sym = SymTab->getSymbolByIndex(GroupSec->Info);
   if (!Sym)
-    error("Info field value " + Twine(GroupSec->Info) + " in section " +
-          GroupSec->Name + " is not a valid symbol index");
+    error("info field value '" + Twine(GroupSec->Info) + "' in section '" +
+          GroupSec->Name + "' is not a valid symbol index");
   GroupSec->setSymTab(SymTab);
   GroupSec->setSymbol(Sym);
   if (GroupSec->Contents.size() % sizeof(ELF::Elf32_Word) ||
       GroupSec->Contents.empty())
-    error("The content of the section " + GroupSec->Name + " is malformed");
+    error("the content of the section " + GroupSec->Name + " is malformed");
   const ELF::Elf32_Word *Word =
       reinterpret_cast<const ELF::Elf32_Word *>(GroupSec->Contents.data());
   const ELF::Elf32_Word *End =
@@ -1022,8 +1022,8 @@ void ELFBuilder<ELFT>::initGroupSection(GroupSection *GroupSec) {
   for (; Word != End; ++Word) {
     uint32_t Index = support::endian::read32<ELFT::TargetEndianness>(Word);
     GroupSec->addMember(SecTable.getSection(
-        Index, "Group member index " + Twine(Index) + " in section " +
-                   GroupSec->Name + " is invalid"));
+        Index, "group member index " + Twine(Index) + " in section '" +
+                   GroupSec->Name + "' is invalid"));
   }
 }
 
@@ -1040,31 +1040,31 @@ void ELFBuilder<ELFT>::initSymbolTable(SymbolTableSection *SymTab) {
 
     if (Sym.st_shndx == SHN_XINDEX) {
       if (SymTab->getShndxTable() == nullptr)
-        error("Symbol '" + Name +
-              "' has index SHN_XINDEX but no SHT_SYMTAB_SHNDX section exists.");
+        error("symbol '" + Name +
+              "' has index SHN_XINDEX but no SHT_SYMTAB_SHNDX section exists");
       if (ShndxData.data() == nullptr) {
         const Elf_Shdr &ShndxSec =
             *unwrapOrError(ElfFile.getSection(SymTab->getShndxTable()->Index));
         ShndxData = unwrapOrError(
             ElfFile.template getSectionContentsAsArray<Elf_Word>(&ShndxSec));
         if (ShndxData.size() != Symbols.size())
-          error("Symbol section index table does not have the same number of "
-                "entries as the symbol table.");
+          error("symbol section index table does not have the same number of "
+                "entries as the symbol table");
       }
       Elf_Word Index = ShndxData[&Sym - Symbols.begin()];
       DefSection = Obj.sections().getSection(
           Index,
-          "Symbol '" + Name + "' has invalid section index " + Twine(Index));
+          "symbol '" + Name + "' has invalid section index " + Twine(Index));
     } else if (Sym.st_shndx >= SHN_LORESERVE) {
       if (!isValidReservedSectionIndex(Sym.st_shndx, Obj.Machine)) {
         error(
-            "Symbol '" + Name +
+            "symbol '" + Name +
             "' has unsupported value greater than or equal to SHN_LORESERVE: " +
             Twine(Sym.st_shndx));
       }
     } else if (Sym.st_shndx != SHN_UNDEF) {
       DefSection = Obj.sections().getSection(
-          Sym.st_shndx, "Symbol '" + Name +
+          Sym.st_shndx, "symbol '" + Name +
                             "' is defined has invalid section index " +
                             Twine(Sym.st_shndx));
     }
@@ -1290,7 +1290,7 @@ std::unique_ptr<Object> ELFReader::create() const {
     Builder.build();
     return Obj;
   }
-  error("Invalid file type");
+  error("invalid file type");
 }
 
 template <class ELFT> void ELFWriter<ELFT>::writeEhdr() {
@@ -1625,8 +1625,8 @@ template <class ELFT> Error ELFWriter<ELFT>::finalize() {
   // to do that.
   if (Obj.SectionNames == nullptr && WriteSectionHeaders)
     return createStringError(llvm::errc::invalid_argument,
-                             "Cannot write section header table because "
-                             "section header string table was removed.");
+                             "cannot write section header table because "
+                             "section header string table was removed");
 
   Obj.sortSections();