[llvm] r186080 - Remove the 'N' modifier from llvm-ar.

Rafael Espindola rafael.espindola at gmail.com
Thu Jul 11 06:03:28 PDT 2013


Author: rafael
Date: Thu Jul 11 08:03:27 2013
New Revision: 186080

URL: http://llvm.org/viewvc/llvm-project?rev=186080&view=rev
Log:
Remove the 'N' modifier from llvm-ar.

* It is not present on OS X.
* It is untested.
* It is not needed for using ar in a build system.

Modified:
    llvm/trunk/tools/llvm-ar/llvm-ar.cpp

Modified: llvm/trunk/tools/llvm-ar/llvm-ar.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/llvm-ar.cpp?rev=186080&r1=186079&r2=186080&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/llvm-ar.cpp (original)
+++ llvm/trunk/tools/llvm-ar/llvm-ar.cpp Thu Jul 11 08:03:27 2013
@@ -92,7 +92,6 @@ bool AddAfter = false;           ///< 'a
 bool AddBefore = false;          ///< 'b' modifier
 bool Create = false;             ///< 'c' modifier
 bool InsertBefore = false;       ///< 'i' modifier
-bool UseCount = false;           ///< 'N' modifier
 bool OriginalDates = false;      ///< 'o' modifier
 bool SymTable = true;            ///< 's' & 'S' modifiers
 bool OnlyUpdate = false;         ///< 'u' modifier
@@ -104,10 +103,6 @@ bool Verbose = false;            ///< 'v
 // one variable.
 std::string RelPos;
 
-// Select which of multiple entries in the archive with the same name should be
-// used (specified with -N) for the delete and extract operations.
-int Count = 1;
-
 // This variable holds the name of the archive file as given on the
 // command line.
 std::string ArchiveName;
@@ -154,20 +149,6 @@ void getRelPos() {
   RestOfArgs.erase(RestOfArgs.begin());
 }
 
-// getCount - Extract the [count] argument associated with the N modifier
-// from the command line and check its value.
-void getCount() {
-  if(RestOfArgs.size() == 0)
-    show_help("Expected [count] value with N modifier");
-
-  Count = atoi(RestOfArgs[0].c_str());
-  RestOfArgs.erase(RestOfArgs.begin());
-
-  // Non-positive counts are not allowed
-  if (Count < 1)
-    show_help("Invalid [count] value (not a positive integer)");
-}
-
 // getArchive - Get the archive file name from the command line
 void getArchive() {
   if(RestOfArgs.size() == 0)
@@ -230,10 +211,6 @@ ArchiveOperation parseCommandLine() {
       InsertBefore = true;
       NumPositional++;
       break;
-    case 'N':
-      getCount();
-      UseCount = true;
-      break;
     default:
       cl::PrintHelpMessage();
     }
@@ -263,8 +240,6 @@ ArchiveOperation parseCommandLine() {
     show_help("The 'o' modifier is only applicable to the 'x' operation");
   if (OnlyUpdate && Operation != ReplaceOrInsert)
     show_help("The 'u' modifier is only applicable to the 'r' operation");
-  if (Count > 1 && Members.size() > 1)
-    show_help("Only one member name may be specified with the 'N' modifier");
 
   // Return the parsed operation to the caller
   return Operation;
@@ -299,26 +274,21 @@ bool buildPaths(bool checkExistence, std
 bool doPrint(std::string* ErrMsg) {
   if (buildPaths(false, ErrMsg))
     return true;
-  unsigned countDown = Count;
   for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
        I != E; ++I ) {
     if (Paths.empty() ||
         (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) {
-      if (countDown == 1) {
-        const char* data = reinterpret_cast<const char*>(I->getData());
+      const char *data = reinterpret_cast<const char *>(I->getData());
 
-        // Skip things that don't make sense to print
-        if (I->isSVR4SymbolTable() || I->isBSD4SymbolTable())
-          continue;
+      // Skip things that don't make sense to print
+      if (I->isSVR4SymbolTable() || I->isBSD4SymbolTable())
+        continue;
 
-        if (Verbose)
-          outs() << "Printing " << I->getPath().str() << "\n";
+      if (Verbose)
+        outs() << "Printing " << I->getPath().str() << "\n";
 
-        unsigned len = I->getSize();
-        outs().write(data, len);
-      } else {
-        countDown--;
-      }
+      unsigned len = I->getSize();
+      outs().write(data, len);
     }
   }
   return false;
@@ -435,16 +405,12 @@ doDelete(std::string* ErrMsg) {
     return true;
   if (Paths.empty())
     return false;
-  unsigned countDown = Count;
   for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
        I != E; ) {
     if (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end()) {
-      if (countDown == 1) {
-        Archive::iterator J = I;
-        ++I;
-        TheArchive->erase(J);
-      } else
-        countDown--;
+      Archive::iterator J = I;
+      ++I;
+      TheArchive->erase(J);
     } else {
       ++I;
     }





More information about the llvm-commits mailing list