[PATCH] D78346: Fix Windows command line bug when last token in response file is ""
Adrian McCarthy via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 27 15:17:02 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2d068e534f16: Fix Windows command line bug when last token in response file is "" (authored by amccarth).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D78346/new/
https://reviews.llvm.org/D78346
Files:
llvm/lib/Support/CommandLine.cpp
llvm/unittests/Support/CommandLineTest.cpp
Index: llvm/unittests/Support/CommandLineTest.cpp
===================================================================
--- llvm/unittests/Support/CommandLineTest.cpp
+++ llvm/unittests/Support/CommandLineTest.cpp
@@ -253,8 +253,8 @@
}
TEST(CommandLineTest, TokenizeWindowsCommandLine1) {
- const char Input[] = "a\\b c\\\\d e\\\\\"f g\" h\\\"i j\\\\\\\"k \"lmn\" o pqr "
- "\"st \\\"u\" \\v";
+ const char Input[] =
+ R"(a\b c\\d e\\"f g" h\"i j\\\"k "lmn" o pqr "st \"u" \v)";
const char *const Output[] = { "a\\b", "c\\\\d", "e\\f g", "h\"i", "j\\\"k",
"lmn", "o", "pqr", "st \"u", "\\v" };
testCommandLineTokenizer(cl::TokenizeWindowsCommandLine, Input, Output,
@@ -268,6 +268,17 @@
array_lengthof(Output));
}
+TEST(CommandLineTest, TokenizeWindowsCommandLineQuotedLastArgument) {
+ const char Input1[] = R"(a b c d "")";
+ const char *const Output1[] = {"a", "b", "c", "d", ""};
+ testCommandLineTokenizer(cl::TokenizeWindowsCommandLine, Input1, Output1,
+ array_lengthof(Output1));
+ const char Input2[] = R"(a b c d ")";
+ const char *const Output2[] = {"a", "b", "c", "d"};
+ testCommandLineTokenizer(cl::TokenizeWindowsCommandLine, Input2, Output2,
+ array_lengthof(Output2));
+}
+
TEST(CommandLineTest, TokenizeConfigFile1) {
const char *Input = "\\";
const char *const Output[] = { "\\" };
Index: llvm/lib/Support/CommandLine.cpp
===================================================================
--- llvm/lib/Support/CommandLine.cpp
+++ llvm/lib/Support/CommandLine.cpp
@@ -1009,7 +1009,7 @@
}
}
- if (!Token.empty())
+ if (State == UNQUOTED)
AddToken(Saver.save(Token.str()));
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78346.266682.patch
Type: text/x-patch
Size: 1779 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200527/db6a4cf7/attachment.bin>
More information about the llvm-commits
mailing list