[PATCH] D78836: [clangd] Strip /showIncludes in clangd compile commandsIn command lines with /showIncludes, clangd would output includes to stdout, breaking clients.
Arthur Eubanks via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Apr 24 16:16:56 PDT 2020
aeubanks created this revision.
aeubanks added reviewers: sammccall, kadircet.
Herald added subscribers: cfe-commits, usaxena95, arphaman, jkorous, MaskRay, ilya-biryukov.
Herald added a project: clang.
Fixes https://github.com/clangd/clangd/issues/322.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D78836
Files:
clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
clang/lib/Tooling/ArgumentsAdjusters.cpp
Index: clang/lib/Tooling/ArgumentsAdjusters.cpp
===================================================================
--- clang/lib/Tooling/ArgumentsAdjusters.cpp
+++ clang/lib/Tooling/ArgumentsAdjusters.cpp
@@ -98,7 +98,7 @@
StringRef Arg = Args[i];
// All dependency-file options begin with -M. These include -MM,
// -MF, -MG, -MP, -MT, -MQ, -MD, and -MMD.
- if (!Arg.startswith("-M")) {
+ if (!Arg.startswith("-M") && Arg != "/showIncludes") {
AdjustedArgs.push_back(Args[i]);
continue;
}
Index: clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
+++ clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
@@ -79,6 +79,13 @@
EXPECT_THAT(Cmd, Not(Contains(Stripped)));
}
+TEST(CommandMangler, StripShowIncludes) {
+ auto Mangler = CommandMangler::forTests();
+ std::vector<std::string> Cmd = {"clang-cl", "/showIncludes", "foo.cc"};
+ Mangler.adjust(Cmd);
+ EXPECT_THAT(Cmd, Not(Contains("/showIncludes")));
+}
+
TEST(CommandMangler, ClangPath) {
auto Mangler = CommandMangler::forTests();
Mangler.ClangPath = testPath("fake/clang");
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78836.260021.patch
Type: text/x-patch
Size: 1255 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200424/e184aa36/attachment.bin>
More information about the cfe-commits
mailing list