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

Reply via email to