summaryrefslogtreecommitdiff
path: root/tools/llvm-ar
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-07-11 13:03:27 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-07-11 13:03:27 +0000
commit1b0dc64919e947bb4f4677b138c734e33061f7c4 (patch)
treee71eba5e850b2f11b44063f8c8a04d4ddf4ddbd9 /tools/llvm-ar
parent55804a089e7ac26d5a07a9ac38e5dcedad3f2754 (diff)
downloadllvm-1b0dc64919e947bb4f4677b138c734e33061f7c4.tar.gz
llvm-1b0dc64919e947bb4f4677b138c734e33061f7c4.tar.bz2
llvm-1b0dc64919e947bb4f4677b138c734e33061f7c4.tar.xz
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186080 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-ar')
-rw-r--r--tools/llvm-ar/llvm-ar.cpp56
1 files changed, 11 insertions, 45 deletions
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index 52fb9509d5..7b1dad091b 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<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;
}