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; |

