diff options
| author | Dmitry Mikulin <dmitry.mikulin@sony.com> | 2018-03-02 23:23:48 +0000 | 
|---|---|---|
| committer | Dmitry Mikulin <dmitry.mikulin@sony.com> | 2018-03-02 23:23:48 +0000 | 
| commit | 702c14fd7954c1dfbf2bf156d99dfe36ac2920ba (patch) | |
| tree | 111bf93ec497ef3a54f9211b98483bc1dfadf36e /llvm/tools/llvm-ar/llvm-ar.cpp | |
| parent | 7fc591f8bbc78b6983b3162f3a4a8a34a98c5497 (diff) | |
| download | bcm5719-llvm-702c14fd7954c1dfbf2bf156d99dfe36ac2920ba.tar.gz bcm5719-llvm-702c14fd7954c1dfbf2bf156d99dfe36ac2920ba.zip | |
Implementation of MRI "delete" command.
Differential Revision: https://reviews.llvm.org/D43989
llvm-svn: 326636
Diffstat (limited to 'llvm/tools/llvm-ar/llvm-ar.cpp')
| -rw-r--r-- | llvm/tools/llvm-ar/llvm-ar.cpp | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index ae7d1a7f1b7..a77845a66c8 100644 --- a/llvm/tools/llvm-ar/llvm-ar.cpp +++ b/llvm/tools/llvm-ar/llvm-ar.cpp @@ -758,7 +758,7 @@ static int performOperation(ArchiveOperation Operation,  }  static void runMRIScript() { -  enum class MRICommand { AddLib, AddMod, Create, Save, End, Invalid }; +  enum class MRICommand { AddLib, AddMod, Create, Delete, Save, End, Invalid };    ErrorOr<std::unique_ptr<MemoryBuffer>> Buf = MemoryBuffer::getSTDIN();    failIfError(Buf.getError()); @@ -779,6 +779,7 @@ static void runMRIScript() {                         .Case("addlib", MRICommand::AddLib)                         .Case("addmod", MRICommand::AddMod)                         .Case("create", MRICommand::Create) +                       .Case("delete", MRICommand::Delete)                         .Case("save", MRICommand::Save)                         .Case("end", MRICommand::End)                         .Default(MRICommand::Invalid); @@ -813,6 +814,12 @@ static void runMRIScript() {          fail("File already saved");        ArchiveName = Rest;        break; +    case MRICommand::Delete: { +      StringRef Name = sys::path::filename(Rest); +      llvm::erase_if(NewMembers, +                     [=](NewArchiveMember &M) { return M.MemberName == Name; }); +      break; +    }      case MRICommand::Save:        Saved = true;        break; | 

