[llvm-ar] Uncapitalize error messages and delete full stop
authorFangrui Song <maskray@google.com>
Sat, 14 Sep 2019 01:18:47 +0000 (01:18 +0000)
committerFangrui Song <maskray@google.com>
Sat, 14 Sep 2019 01:18:47 +0000 (01:18 +0000)
Most GNU binutils don't append full stops in error messages. This
convention has been adopted by a bunch of LLVM binary utilities. Make
llvm-ar follow the convention as well.

Reviewed By: grimar

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

llvm-svn: 371912

20 files changed:
llvm/test/Object/archive-extract.test
llvm/test/Object/archive-format.test
llvm/test/Object/archive-update.test
llvm/test/Object/mri2.test
llvm/test/Object/mri3.test
llvm/test/Object/mri4.test
llvm/test/Object/mri5.test
llvm/test/tools/llvm-ar/count.test
llvm/test/tools/llvm-ar/insert-after.test
llvm/test/tools/llvm-ar/insert-before.test
llvm/test/tools/llvm-ar/invalid-command-line.test
llvm/test/tools/llvm-ar/move-after.test
llvm/test/tools/llvm-ar/move-before.test
llvm/test/tools/llvm-ar/move.test
llvm/test/tools/llvm-ar/mri-addlib.test
llvm/test/tools/llvm-ar/print.test
llvm/test/tools/llvm-ar/quick-append.test
llvm/test/tools/llvm-ar/read-only-archive.test
llvm/test/tools/llvm-ar/replace.test
llvm/tools/llvm-ar/llvm-ar.cpp

index 44d76b4..11ca12e 100644 (file)
@@ -58,4 +58,4 @@ RUN: llvm-ar p %p/Inputs/thin.a evenlen | FileCheck %s --check-prefix=EVENLEN
 EVENLEN: evenlen
 
 RUN: not llvm-ar p %p/Inputs/thin-path.a t/test2.o 2>&1 | FileCheck %s --check-prefix=MISSING
-MISSING: {{N|n}}o such file or directory.
+MISSING: error: {{N|n}}o such file or directory
index b555bf8..77e7a5d 100644 (file)
@@ -76,7 +76,7 @@ THIN-PATH-NEXT: /41             0           0     0     644     4         `
 THIN-PATH-NEXT: /65             0           0     0     644     4         `
 
 RUN: not llvm-ar --format=bsd rcT bad.a 0123456789abcde 0123456789abcdef 2>&1 | FileCheck --check-prefix=BSD-THIN %s
-BSD-THIN: Only the gnu format has a thin mode.
+BSD-THIN: error: only the gnu format has a thin mode
 
 If an archive has an object with no symbols, the linker and some other
 tools on some versions of Solaris will abort operations if there is no
index eb68e8d..e152da5 100644 (file)
@@ -48,4 +48,4 @@ BOTH-FILES: bar
 RUN: rm -f %t/tmp.a
 RUN: llvm-ar --format=gnu rc %t/tmp.a foo
 RUN: not llvm-ar --format=gnu rcT %t/tmp.a bar 2>&1 | FileCheck --check-prefix=ERROR %s
-ERROR: Cannot convert a regular archive to a thin one.
+ERROR: error: cannot convert a regular archive to a thin one
index 0c24179..c4dadf1 100644 (file)
@@ -4,4 +4,4 @@
 ; RUN: echo end >> %t.mri
 
 ; RUN: not llvm-ar -M  < %t.mri 2>&1 | FileCheck %s
-; CHECK: Editing multiple archives not supported
+; CHECK: error: editing multiple archives not supported
index bdc5399..163de53 100644 (file)
@@ -3,4 +3,4 @@
 ; RUN: echo end >> %t.mri
 
 ; RUN: not llvm-ar -M  < %t.mri 2>&1 | FileCheck %s
-; CHECK: File already saved.
+; CHECK: error: file already saved
index a24c14d..26a3733 100644 (file)
@@ -1,4 +1,4 @@
 ; RUN: echo abc > %t.mri
 
 ; RUN: not llvm-ar -M  < %t.mri 2>&1 | FileCheck %s
-; CHECK: Unknown command: abc.
+; CHECK: error: unknown command: abc
index 9811424..4c39349 100644 (file)
@@ -1,2 +1,2 @@
 ; RUN: not llvm-ar -M t < %s 2>&1 | FileCheck %s
-; CHECK: Cannot mix -M and other options.
+; CHECK: error: cannot mix -M and other options
index 81b30bc..fa6141f 100644 (file)
@@ -31,9 +31,9 @@ RUN: not llvm-ar xN 4 %t/archive.a foo.txt 2>&1 | FileCheck %s --check-prefix=ER
 # N only applies to x/d.
 RUN: not llvm-ar rN 1 %t/archive.a foo.txt 2>&1 | FileCheck %s --check-prefix=ERR-BAD-OP
 
-ERR-NOT-NUM:   error: Value for [count] must be numeric
-ERR-NOT-POS:   error: Value for [count] must be positive
-ERR-BAD-OP:    error: The 'N' modifier can only be specified with the 'x' or 'd' operations
+ERR-NOT-NUM:   error: value for [count] must be numeric
+ERR-NOT-POS:   error: value for [count] must be positive
+ERR-BAD-OP:    error: the 'N' modifier can only be specified with the 'x' or 'd' operations
 ERR-NOT-FOUND: error: 'foo.txt' was not found
 
 # Extract individual items.
index 7c01e73..a3f51a6 100644 (file)
@@ -43,7 +43,7 @@ RUN: not llvm-ar ra invalid.txt %t-invalid.a %t2.txt 2>&1 \
 RUN:   | FileCheck %s --check-prefix=ERROR
 RUN: llvm-ar t %t-invalid.a | FileCheck %s --check-prefix=INVALID
 
-ERROR: error: Insertion point not found.
+ERROR: error: insertion point not found
 INVALID:      1.txt
 INVALID-NEXT: 2.txt
 INVALID-NEXT: 3.txt
index 4abf3a0..f2a6bdd 100644 (file)
@@ -43,7 +43,7 @@ RUN: not llvm-ar rb invalid.txt %t-invalid.a %t2.txt 2>&1 \
 RUN:   | FileCheck %s --check-prefix=ERROR
 RUN: llvm-ar t %t-invalid.a | FileCheck %s --check-prefix=INVALID
 
-ERROR: error: Insertion point not found.
+ERROR: error: insertion point not found
 INVALID:      1.txt
 INVALID-NEXT: 2.txt
 INVALID-NEXT: 3.txt
index 2bfcc1a..0dcd36a 100644 (file)
@@ -1,5 +1,5 @@
 Test that llvm-ar exits with 1 when there is an error.
 
 RUN: not llvm-ar e 2>&1 | FileCheck %s
-CHECK: unknown option e.
+CHECK: error: unknown option e
 CHECK: OVERVIEW: LLVM Archiver
index 871d120..8bd8321 100644 (file)
@@ -43,7 +43,7 @@ RUN: not llvm-ar ma invalid.txt %t-invalid.a %t2.txt 2>&1 \
 RUN:   | FileCheck %s --check-prefix=ERROR
 RUN: llvm-ar t %t-invalid.a | FileCheck %s --check-prefix=INVALID
 
-ERROR: error: Insertion point not found.
+ERROR: error: insertion point not found
 INVALID:      1.txt
 INVALID-NEXT: 2.txt
 INVALID-NEXT: 3.txt
index 15e2735..bab8592 100644 (file)
@@ -43,7 +43,7 @@ RUN: not llvm-ar mb invalid.txt %t-invalid.a %t2.txt 2>&1 \
 RUN:   | FileCheck %s --check-prefix=ERROR
 RUN: llvm-ar t %t-invalid.a | FileCheck %s --check-prefix=INVALID
 
-ERROR: error: Insertion point not found.
+ERROR: error: insertion point not found
 INVALID:      1.txt
 INVALID-NEXT: 2.txt
 INVALID-NEXT: 3.txt
index 268fbf9..e62b8cc 100644 (file)
 # RUN: not llvm-ar m 2>&1 \
 # RUN:   | FileCheck %s --check-prefix=NO-ARCHIVE
 
-# NO-ARCHIVE: error: An archive name must be specified.
+# NO-ARCHIVE: error: an archive name must be specified
 
 ## Member does not exist:
 # RUN: llvm-ar rc %t/missing.a %t/1.o %t/2.o %t/3.o
 # RUN: not llvm-ar m %t/missing.a %t/missing.txt 2>&1 \
 # RUN:   | FileCheck %s --check-prefix=MISSING-FILE -DFILE=%t/missing.txt
 
-# MISSING-FILE: error: [[FILE]]: {{[nN]}}o such file or directory.
+# MISSING-FILE: error: [[FILE]]: {{[nN]}}o such file or directory
 
 --- !ELF
 FileHeader:
index cf62acb..b213fd9 100644 (file)
@@ -22,7 +22,7 @@
 # RUN: not llvm-ar -M < %t/badlib.mri 2>&1 | FileCheck --check-prefix=PARSE %s
 # RUN: not ls %t/badlib.a
 
-# PARSE: Could not parse library
+# PARSE: error: could not parse library
 
 ## No create command.
 # RUN: echo "ADDLIB %t/f.a"  > %t/nocreate.mri
index 4081a36..ec7fdc4 100644 (file)
@@ -69,13 +69,13 @@ RUN:   | FileCheck %s --check-prefix=SAME -DFILE=%t/2.txt
 RUN: not llvm-ar p 2>&1 \
 RUN:   | FileCheck %s --check-prefix=NO-ARCHIVE
 
-NO-ARCHIVE: error: An archive name must be specified.
+NO-ARCHIVE: error: an archive name must be specified
 
 # Archive does not exist:
 RUN: not llvm-ar p %t/missing.a 2>&1 \
 RUN:   | FileCheck %s --check-prefix=MISSING-ARCHIVE -DARCHIVE=%t/missing.a
 
-MISSING-ARCHIVE: error: error loading '[[ARCHIVE]]': {{[nN]}}o such file or directory.
+MISSING-ARCHIVE: error: error loading '[[ARCHIVE]]': {{[nN]}}o such file or directory
 
 # Member does not exist:
 RUN: not llvm-ar p %t/archive.a %t-missing.txt 2>&1 \
index 607ba41..857b01a 100644 (file)
 # RUN: not llvm-ar qc 2>&1 \
 # RUN:   | FileCheck %s --check-prefix=NO-ARCHIVE
 
-# NO-ARCHIVE: error: An archive name must be specified.
+# NO-ARCHIVE: error: an archive name must be specified
 
 ## Member does not exist:
 # RUN: not llvm-ar qc %t/missing.a %t/missing.txt 2>&1 \
 # RUN:   | FileCheck %s --check-prefix=MISSING-FILE -DFILE=%t/missing.txt
 
-# MISSING-FILE: error: [[FILE]]: {{[nN]}}o such file or directory.
+# MISSING-FILE: error: [[FILE]]: {{[nN]}}o such file or directory
 
 --- !ELF
 FileHeader:
index 1d638f4..0365f6a 100644 (file)
@@ -13,7 +13,7 @@
 # RUN: not llvm-ar r %t/archive.a %t/3.txt \
 # RUN:   FileCheck %s --check-prefix=ERROR -DFILE=%t/archive.a
 
-# ERROR: error: [[FILE]]: no such file or directory.
+# ERROR: error: [[FILE]]: no such file or directory
 
 # RUN: not llvm-ar q %t/archive.a %t/3.txt \
 # RUN:   FileCheck %s --check-prefix=ERROR -DFILE=%t/archive.a
@@ -21,7 +21,7 @@
 # RUN: not llvm-ar m %t/archive.a t/1.txt \
 # RUN:   FileCheck %s --check-prefix=ERROR-2 -DFILE=%t/archive.a
 
-# ERROR-2: error: [[FILE]]: permission denied.
+# ERROR-2: error: [[FILE]]: permission denied
 
 # RUN: llvm-ar t %t/archive.a \
 # RUN:   | FileCheck %s --check-prefix=ARCHIVE --match-full-lines --implicit-check-not {{.}}
index 0c1722a..9e38d5a 100644 (file)
 # RUN: not llvm-ar r 2>&1 \
 # RUN:   | FileCheck %s --check-prefix=NO-ARCHIVE
 
-# NO-ARCHIVE: error: An archive name must be specified.
+# NO-ARCHIVE: error: an archive name must be specified
 
 ## Member does not exist:
 # RUN: llvm-ar rc %t/missing.a %t/1.o %t/2.o %t/3.o
 # RUN: not llvm-ar r %t/missing.a %t/missing.txt 2>&1 \
 # RUN:   | FileCheck %s --check-prefix=MISSING-FILE -DFILE=%t/missing.txt
 
-# MISSING-FILE: error: [[FILE]]: {{[Nn]}}o such file or directory.
+# MISSING-FILE: error: [[FILE]]: {{[Nn]}}o such file or directory
 
 --- !ELF
 FileHeader:
index c83a679..9447298 100644 (file)
@@ -118,7 +118,7 @@ void printHelpMessage() {
 
 // Show the error message and exit.
 LLVM_ATTRIBUTE_NORETURN static void fail(Twine Error) {
-  WithColor::error(errs(), ToolName) << Error << ".\n";
+  WithColor::error(errs(), ToolName) << Error << "\n";
   printHelpMessage();
   exit(1);
 }
@@ -209,7 +209,7 @@ static BumpPtrAllocator Alloc;
 // associated with a, b, and i modifiers
 static void getRelPos() {
   if (PositionalArgs.empty())
-    fail("Expected [relpos] for a, b, or i modifier");
+    fail("expected [relpos] for 'a', 'b', or 'i' modifier");
   RelPos = PositionalArgs[0];
   PositionalArgs.erase(PositionalArgs.begin());
 }
@@ -218,19 +218,19 @@ static void getRelPos() {
 // associated with the N modifier
 static void getCountParam() {
   if (PositionalArgs.empty())
-    fail("Expected [count] for N modifier");
+    fail("expected [count] for 'N' modifier");
   auto CountParamArg = StringRef(PositionalArgs[0]);
   if (CountParamArg.getAsInteger(10, CountParam))
-    fail("Value for [count] must be numeric, got: " + CountParamArg);
+    fail("value for [count] must be numeric, got: " + CountParamArg);
   if (CountParam < 1)
-    fail("Value for [count] must be positive, got: " + CountParamArg);
+    fail("value for [count] must be positive, got: " + CountParamArg);
   PositionalArgs.erase(PositionalArgs.begin());
 }
 
 // Get the archive file name from the command line
 static void getArchive() {
   if (PositionalArgs.empty())
-    fail("An archive name must be specified");
+    fail("an archive name must be specified");
   ArchiveName = PositionalArgs[0];
   PositionalArgs.erase(PositionalArgs.begin());
 }
@@ -246,12 +246,12 @@ std::vector<std::unique_ptr<object::Archive>> Archives;
 
 static object::Archive &readLibrary(const Twine &Library) {
   auto BufOrErr = MemoryBuffer::getFile(Library, -1, false);
-  failIfError(BufOrErr.getError(), "Could not open library " + Library);
+  failIfError(BufOrErr.getError(), "could not open library " + Library);
   ArchiveBuffers.push_back(std::move(*BufOrErr));
   auto LibOrErr =
       object::Archive::create(ArchiveBuffers.back()->getMemBufferRef());
   failIfError(errorToErrorCode(LibOrErr.takeError()),
-              "Could not parse library");
+              "could not parse library");
   Archives.push_back(std::move(*LibOrErr));
   return *Archives.back();
 }
@@ -264,7 +264,7 @@ static void runMRIScript();
 static ArchiveOperation parseCommandLine() {
   if (MRI) {
     if (!PositionalArgs.empty() || !Options.empty())
-      fail("Cannot mix -M and other options");
+      fail("cannot mix -M and other options");
     runMRIScript();
   }
 
@@ -383,31 +383,31 @@ static ArchiveOperation parseCommandLine() {
     NumOperations = 1;
     Operation = CreateSymTab;
     if (!Members.empty())
-      fail("The s operation takes only an archive as argument");
+      fail("the 's' operation takes only an archive as argument");
   }
 
   // Perform various checks on the operation/modifier specification
   // to make sure we are dealing with a legal request.
   if (NumOperations == 0)
-    fail("You must specify at least one of the operations");
+    fail("you must specify at least one of the operations");
   if (NumOperations > 1)
-    fail("Only one operation may be specified");
+    fail("only one operation may be specified");
   if (NumPositional > 1)
-    fail("You may only specify one of a, b, and i modifiers");
+    fail("you may only specify one of 'a', 'b', and 'i' modifiers");
   if (AddAfter || AddBefore)
     if (Operation != Move && Operation != ReplaceOrInsert)
-      fail("The 'a', 'b' and 'i' modifiers can only be specified with "
+      fail("the 'a', 'b' and 'i' modifiers can only be specified with "
            "the 'm' or 'r' operations");
   if (CountParam)
     if (Operation != Extract && Operation != Delete)
-      fail("The 'N' modifier can only be specified with the 'x' or 'd' "
+      fail("the 'N' modifier can only be specified with the 'x' or 'd' "
            "operations");
   if (OriginalDates && Operation != Extract)
-    fail("The 'o' modifier is only applicable to the 'x' operation");
+    fail("the 'o' modifier is only applicable to the 'x' operation");
   if (OnlyUpdate && Operation != ReplaceOrInsert)
-    fail("The 'u' modifier is only applicable to the 'r' operation");
+    fail("the 'u' modifier is only applicable to the 'r' operation");
   if (AddLibrary && Operation != QuickAppend)
-    fail("The 'L' modifier is only applicable to the 'q' operation");
+    fail("the 'L' modifier is only applicable to the 'q' operation");
 
   // Return the parsed operation to the caller
   return Operation;
@@ -589,7 +589,7 @@ static void addChildMember(std::vector<NewArchiveMember> &Members,
                            const object::Archive::Child &M,
                            bool FlattenArchive = false) {
   if (Thin && !M.getParent()->isThin())
-    fail("Cannot convert a regular archive to a thin one");
+    fail("cannot convert a regular archive to a thin one");
   Expected<NewArchiveMember> NMOrErr =
       NewArchiveMember::getOldMember(M, Deterministic);
   failIfError(NMOrErr.takeError());
@@ -783,7 +783,7 @@ computeNewArchiveMembers(ArchiveOperation Operation,
     return Ret;
 
   if (!RelPos.empty() && InsertPos == -1)
-    fail("Insertion point not found");
+    fail("insertion point not found");
 
   if (RelPos.empty())
     InsertPos = Ret.size();
@@ -859,12 +859,12 @@ static void performWriteOperation(ArchiveOperation Operation,
     break;
   case BSD:
     if (Thin)
-      fail("Only the gnu format has a thin mode");
+      fail("only the gnu format has a thin mode");
     Kind = object::Archive::K_BSD;
     break;
   case DARWIN:
     if (Thin)
-      fail("Only the gnu format has a thin mode");
+      fail("only the gnu format has a thin mode");
     Kind = object::Archive::K_DARWIN;
     break;
   case Unknown:
@@ -922,14 +922,13 @@ static int performOperation(ArchiveOperation Operation,
       MemoryBuffer::getFile(ArchiveName, -1, false);
   std::error_code EC = Buf.getError();
   if (EC && EC != errc::no_such_file_or_directory)
-    fail("error opening '" + ArchiveName + "': " + EC.message() + "!");
+    fail("error opening '" + ArchiveName + "': " + EC.message());
 
   if (!EC) {
     Error Err = Error::success();
     object::Archive Archive(Buf.get()->getMemBufferRef(), Err);
     EC = errorToErrorCode(std::move(Err));
-    failIfError(EC,
-                "error loading '" + ArchiveName + "': " + EC.message() + "!");
+    failIfError(EC, "error loading '" + ArchiveName + "': " + EC.message());
     if (Archive.isThin())
       CompareFullPath = true;
     performOperation(Operation, &Archive, std::move(Buf.get()), NewMembers);
@@ -1003,9 +1002,9 @@ static void runMRIScript() {
     case MRICommand::Create:
       Create = true;
       if (!ArchiveName.empty())
-        fail("Editing multiple archives not supported");
+        fail("editing multiple archives not supported");
       if (Saved)
-        fail("File already saved");
+        fail("file already saved");
       ArchiveName = Rest;
       break;
     case MRICommand::Delete: {
@@ -1020,7 +1019,7 @@ static void runMRIScript() {
     case MRICommand::End:
       break;
     case MRICommand::Invalid:
-      fail("Unknown command: " + CommandStr);
+      fail("unknown command: " + CommandStr);
     }
   }
 
@@ -1108,7 +1107,7 @@ static int ranlib_main(int argc, char **argv) {
       return 0;
     } else {
       if (ArchiveSpecified)
-        fail("Exactly one archive should be specified");
+        fail("exactly one archive should be specified");
       ArchiveSpecified = true;
       ArchiveName = argv[i];
     }
@@ -1136,5 +1135,5 @@ int main(int argc, char **argv) {
 
   if (Stem.contains_lower("ar"))
     return ar_main(argc, argv);
-  fail("Not ranlib, ar, lib or dlltool!");
+  fail("not ranlib, ar, lib or dlltool");
 }