rsmith added inline comments.
================ Comment at: lib/Frontend/DependencyFile.cpp:325 +void DFGImpl::HasInclude(SourceLocation Loc, const FileEntry *File) { + if (!File) + return; ---------------- vsapsai wrote: > rsmith wrote: > > Have you thought about whether we should add a dependency even for a > > missing file under `-MG` (`AddMissingHeaderDeps`) mode? I think it's > > probably better to not do so (ie, the behavior in this patch), but it seems > > worth considering. > Do you know how Make uses these missing files? Or maybe where I can find > more. The only documentation I found says > > > This feature is used in automatic updating of makefiles. > > Which is not particularly illuminating. > > Currently I prefer not to include not found `__has_include` files because > they aren't really missing, it's OK if they aren't there and nothing has to > be done to fix that. But I'd like to confirm if my understanding aligns with > Make behaviour. I believe the setup is this: * your project uses generated headers * in order to do the first compilation, you need to know which source files might include those generated headers So you use `-M -MG` to build your make file dependencies as a separate step before your first "real" compilation, and the `-MG` flag causes dependencies on the not-yet-existing generated files to be emitted by the compiler. Given that the purpose of `-MG` (as I understand it) is to cope with generated files, and that using `__has_include` to find a generated file would be peculiar (it's much more likely that the named file simply doesn't exist and shouldn't have a dependency generated for it), I think it's better to omit dependencies for nonexistent files for `__has_include` even under `-MG`. https://reviews.llvm.org/D30882 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits