[modules] For explicit module file dependencies, only list direct dependency module files.
llvm-svn: 244931
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index ae1ccd7..73febb4 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -709,6 +709,9 @@
// They won't be discovered by the regular preprocessor, so
// we let make / ninja to know about this implicit dependency.
Opts.ExtraDeps = Args.getAllArgValues(OPT_fsanitize_blacklist);
+ auto ModuleFiles = Args.getAllArgValues(OPT_fmodule_file);
+ Opts.ExtraDeps.insert(Opts.ExtraDeps.end(), ModuleFiles.begin(),
+ ModuleFiles.end());
}
bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args,
diff --git a/clang/lib/Frontend/DependencyFile.cpp b/clang/lib/Frontend/DependencyFile.cpp
index ec47781..c5c3449 100644
--- a/clang/lib/Frontend/DependencyFile.cpp
+++ b/clang/lib/Frontend/DependencyFile.cpp
@@ -486,6 +486,6 @@
void DFGASTReaderListener::visitModuleFile(llvm::StringRef Filename,
serialization::ModuleKind Kind) {
- if (Parent.includeModuleFiles() || Kind == serialization::MK_ExplicitModule)
+ if (Parent.includeModuleFiles())
Parent.AddFilename(Filename);
}