diff --git a/clang/lib/Tooling/ArgumentsAdjusters.cpp b/clang/lib/Tooling/ArgumentsAdjusters.cpp --- a/clang/lib/Tooling/ArgumentsAdjusters.cpp +++ b/clang/lib/Tooling/ArgumentsAdjusters.cpp @@ -98,7 +98,8 @@ 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") && !Arg.startswith("/showIncludes")) { + if (!Arg.startswith("-M") && !Arg.startswith("/showIncludes") && + !Arg.startswith("-showIncludes")) { AdjustedArgs.push_back(Args[i]); continue; } diff --git a/clang/unittests/Tooling/ToolingTest.cpp b/clang/unittests/Tooling/ToolingTest.cpp --- a/clang/unittests/Tooling/ToolingTest.cpp +++ b/clang/unittests/Tooling/ToolingTest.cpp @@ -530,9 +530,11 @@ EXPECT_TRUE(HasFlag("-w")); } -// Check getClangStripDependencyFileAdjuster strips /showIncludes +// Check getClangStripDependencyFileAdjuster strips /showIncludes and variants TEST(ClangToolTest, StripDependencyFileAdjusterShowIncludes) { - FixedCompilationDatabase Compilations("/", {"/showIncludes", "-c"}); + FixedCompilationDatabase Compilations( + "/", {"/showIncludes", "/showIncludes:user", "-showIncludes", + "-showIncludes:user", "-c"}); ClangTool Tool(Compilations, std::vector(1, "/a.cc")); Tool.mapVirtualFile("/a.cc", "void a() {}"); @@ -555,34 +557,9 @@ return llvm::find(FinalArgs, Flag) != FinalArgs.end(); }; EXPECT_FALSE(HasFlag("/showIncludes")); - EXPECT_TRUE(HasFlag("-c")); -} - -// Check getClangStripDependencyFileAdjuster strips /showIncludes:user -TEST(ClangToolTest, StripDependencyFileAdjusterShowIncludesUser) { - FixedCompilationDatabase Compilations("/", {"/showIncludes:user", "-c"}); - - ClangTool Tool(Compilations, std::vector(1, "/a.cc")); - Tool.mapVirtualFile("/a.cc", "void a() {}"); - - std::unique_ptr Action( - newFrontendActionFactory()); - - CommandLineArguments FinalArgs; - ArgumentsAdjuster CheckFlagsAdjuster = - [&FinalArgs](const CommandLineArguments &Args, StringRef /*unused*/) { - FinalArgs = Args; - return Args; - }; - Tool.clearArgumentsAdjusters(); - Tool.appendArgumentsAdjuster(getClangStripDependencyFileAdjuster()); - Tool.appendArgumentsAdjuster(CheckFlagsAdjuster); - Tool.run(Action.get()); - - auto HasFlag = [&FinalArgs](const std::string &Flag) { - return llvm::find(FinalArgs, Flag) != FinalArgs.end(); - }; EXPECT_FALSE(HasFlag("/showIncludes:user")); + EXPECT_FALSE(HasFlag("-showIncludes")); + EXPECT_FALSE(HasFlag("-showIncludes:user")); EXPECT_TRUE(HasFlag("-c")); }