]> granicus.if.org Git - clang/commit
Allow CompilerInvocations to generate .d files.
authorSterling Augustine <saugustine@google.com>
Thu, 6 Jul 2017 21:02:52 +0000 (21:02 +0000)
committerSterling Augustine <saugustine@google.com>
Thu, 6 Jul 2017 21:02:52 +0000 (21:02 +0000)
commit2b311bba46679bc305c675521bf297f60e3ba7ae
tree7d5dd77c8032ee25708ca656c6d3d316af914554
parent70922a4eb48a3c74ba8e17d7dc585d813ed7e07d
Allow CompilerInvocations to generate .d files.

Summary:
Most clang tools should ignore the -M
family of options because one wouldn't want them
to generate a new dependency (.d) file. However,
some tools may want this dependency file. This
patch creates a mechanism for them to do this.

This implementation just plumbs a boolean down
several layers of calls. Each of the modified calls
has several call sites, and so a single member
variable or new API entry point won't work.

An alternative would be to write a function to filter
the -M family of arguments out of CC1Args, and have
each caller call that function by hand before calling
newInvocation, Invocation::run, or buildAstFromCodeWithArgs.
This is a more complicated and error-prone solution.
Why burden all the callers to remember to use
this function?

But I could rewrite this patch to use that method if
that is deemed more appropriate.

Reviewers: klimek

Reviewed By: klimek

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D34304

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@307315 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Tooling/ArgumentsAdjusters.h
include/clang/Tooling/Tooling.h
lib/Tooling/ArgumentsAdjusters.cpp
lib/Tooling/Tooling.cpp