forked from OSchip/llvm-project
Strip -showIncludes in getClangStripDependencyFileAdjuster()
Summary: Follow-up to https://reviews.llvm.org/D78836. Also consolidate some test cases. Reviewers: thakis Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78939
This commit is contained in:
parent
76f74d15fe
commit
dab1326a5a
|
@ -98,7 +98,8 @@ ArgumentsAdjuster getClangStripDependencyFileAdjuster() {
|
|||
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;
|
||||
}
|
||||
|
|
|
@ -530,9 +530,11 @@ TEST(ClangToolTest, StripDependencyFileAdjuster) {
|
|||
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<std::string>(1, "/a.cc"));
|
||||
Tool.mapVirtualFile("/a.cc", "void a() {}");
|
||||
|
@ -555,34 +557,9 @@ TEST(ClangToolTest, StripDependencyFileAdjusterShowIncludes) {
|
|||
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<std::string>(1, "/a.cc"));
|
||||
Tool.mapVirtualFile("/a.cc", "void a() {}");
|
||||
|
||||
std::unique_ptr<FrontendActionFactory> Action(
|
||||
newFrontendActionFactory<SyntaxOnlyAction>());
|
||||
|
||||
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"));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue