]> granicus.if.org Git - llvm/commitdiff
[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

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

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

index 44d76b4dd1fba0623cbd2dae1a02edc70cfcc1f2..11ca12e3353b103919cd10840fdc1f4a3ab74f36 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 b555bf88faca9164a5fcfafbec108a4f1e844388..77e7a5de009f8a4fbdb1c45cc23e9945e4e57dda 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 eb68e8dca481688b721a585c10f3df8b858e2eee..e152da5705c16c9874b27f41d51430983f5763ca 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 0c24179341779567dcc2c42e7c0fde9f52c98114..c4dadf13f268b6a416adf8131be3099d0db7c268 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 bdc53991510e8eb8b456f9fd6b2a8df77ce4121a..163de53f8e57a09ffcd9e0bbd6eb4bde12f10686 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 a24c14d7d28965185e78e79c4c4862eda69972e7..26a3733affb277a687168e2a05472b6d5f726dd5 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 98114248b69c30bba5400489dec8c8627ecf0d41..4c39349903ee1638253fbfd47b9139e48a528273 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 81b30bc1d6c103317a627461e514365fda9f4762..fa6141ff13f39162566acd5b9390a9eea4b609cb 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 7c01e736149aa397927307a14f38646c7ce3571b..a3f51a6d4d79200ce3d7848ed6b25f25f56a5207 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 4abf3a000287c2afcf10410f7fea35a472c6b8d8..f2a6bdd4e170f73d180e7a8afd0877dc07ad8de9 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 2bfcc1a457dbd3dd2f304d41019f47517fd8c20b..0dcd36a9c4e2dc8a006d1da5cbe1679bdd7d1f61 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 871d120c73b78508ee344bf0eff802df174bf868..8bd83216c6895fcd9f76152cac4bdcf8cd0f5454 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 15e27359d0e40d5f161dd8ffd9091d5c8005b71d..bab8592f8f97879192831eea631b7cefd487a2ce 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 268fbf94cf19f53bea912bb8539d22705a7a6ff3..e62b8ccd609d29217db2af6916d64f83097eb516 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 cf62acbf0b0637a2607db617daf45567e6fd1f82..b213fd9e5c1776332f457302ea1a026ebea37138 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 4081a36ac4eb3396b50e3f99eee8da69988e2327..ec7fdc4137d291eed5d8c2d1c0871fd968747b7f 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 607ba413ae09da66e4d7ecdb110325eecdbbbf01..857b01a7aa174d8bcd9e4fa7954c41aec685d903 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 1d638f45cac363758e0a454ec2794b7bb02e168d..0365f6ad054da626901ac4b5c6d52b6ae23e7d78 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 0c1722a23ef5a32abc4987d9a717ab7dcea3cf2f..9e38d5a7502cff6644884716cce2deccfdf16f0e 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 c83a6798bcc1c7123d43dad018eabb2ecbaa6966..9447298421b7dba3e70e688693728898c5ff0772 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");
 }