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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits