From 5033dd7f7f4670e60b766bc5a2ff8a9071392f04 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 11 Jul 2013 13:03:27 +0000 Subject: [PATCH] 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. llvm-svn: 186080 --- tools/llvm-ar/llvm-ar.cpp | 56 ++++++++------------------------------- 1 file changed, 11 insertions(+), 45 deletions(-) diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 52fb9509d5c..7b1dad091b1 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -92,7 +92,6 @@ bool AddAfter = false; ///< 'a' modifier 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' modifier // 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::string* ErrMsg) { 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(I->getData()); + const char *data = reinterpret_cast(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; }