summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-10-22 03:10:56 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-10-22 03:10:56 +0000
commit68bae2c7f6e1faf46cdcbf216b91a8cde976e0b1 (patch)
tree52aa55b954d0c0286b0efe7e0597e65f65309d82 /llvm
parent277ace025d5afe04ebf059017d0cae985ca3c34d (diff)
downloadbcm5719-llvm-68bae2c7f6e1faf46cdcbf216b91a8cde976e0b1.tar.gz
bcm5719-llvm-68bae2c7f6e1faf46cdcbf216b91a8cde976e0b1.zip
Handle spaces and quotes in file names in MRI scripts.
llvm-svn: 220364
Diffstat (limited to 'llvm')
-rw-r--r--llvm/test/Object/mri-addmod.test2
-rw-r--r--llvm/tools/llvm-ar/llvm-ar.cpp3
2 files changed, 4 insertions, 1 deletions
diff --git a/llvm/test/Object/mri-addmod.test b/llvm/test/Object/mri-addmod.test
index 3a59a3bbd96..0e9e67924ff 100644
--- a/llvm/test/Object/mri-addmod.test
+++ b/llvm/test/Object/mri-addmod.test
@@ -1,5 +1,5 @@
; RUN: echo create %t.a > %t.mri
-; RUN: echo addmod %p/Inputs/trivial-object-test.elf-x86-64 >> %t.mri
+; RUN: echo "addmod \"%p/Inputs/trivial-object-test.elf-x86-64\" " >> %t.mri
; RUN: echo save >> %t.mri
; RUN: echo end >> %t.mri
diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp
index 8411a1dad47..6858a94b36b 100644
--- a/llvm/tools/llvm-ar/llvm-ar.cpp
+++ b/llvm/tools/llvm-ar/llvm-ar.cpp
@@ -961,6 +961,9 @@ static void runMRIScript() {
StringRef Line = *I;
StringRef CommandStr, Rest;
std::tie(CommandStr, Rest) = Line.split(' ');
+ Rest = Rest.trim();
+ if (!Rest.empty() && Rest.front() == '"' && Rest.back() == '"')
+ Rest = Rest.drop_front().drop_back();
auto Command = StringSwitch<MRICommand>(CommandStr.lower())
.Case("addlib", MRICommand::AddLib)
.Case("addmod", MRICommand::AddMod)
OpenPOWER on IntegriCloud