Commit Graph

51 Commits

Author SHA1 Message Date
Angel Garcia Gomez d162035b9b Roll-back r250822.
Summary: It breaks the build for the ASTMatchers

Subscribers: klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D13893

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@250827 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-20 13:23:58 +00:00
Angel Garcia Gomez e83bf34da9 Apply modernize-use-default to clang.
Summary: Replace empty bodies of default constructors and destructors with '= default'.

Reviewers: bkramer, klimek

Subscribers: klimek, alexfh, cfe-commits

Differential Revision: http://reviews.llvm.org/D13890

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@250822 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-20 12:52:55 +00:00
Douglas Katzman 740dd7fc7c Use new utility function to clean leading junk from pathnames. NFC
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@246714 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-02 21:14:53 +00:00
Richard Smith 484b48d1d1 [modules] For explicit module file dependencies, only list direct dependency module files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244931 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-13 18:30:25 +00:00
Reid Kleckner 59987619e6 Try to fix the build after r244923
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244926 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-13 18:10:34 +00:00
Richard Smith 65dcf1d8f8 [modules] Change the way we deal with .d output for explicitly-specified module
files: include the .pcm file itself in the .d output, rather than including its
own input files. Other forms of module file continue to be transparent for .d
output.

Arguably, the input files for the .pcm file are still inputs to the
compilation, but that's unnecessary for make-like build systems (where the
mtime of the .pcm file is sufficient) and harmful for smarter build systems
that know about module files and want to track only the local dependencies.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244923 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-13 17:57:10 +00:00
Ivan Krasin f25cce359f Add sanitizer blacklists to the rules generated with -M/-MM/-MD/-MMD.
Summary:
Clang sanitizers, such as AddressSanitizer, ThreadSanitizer, MemorySanitizer,
Control Flow Integrity and others, use blacklists to specify which types / functions
should not be instrumented to avoid false positives or suppress known failures.

This change adds the blacklist filenames to the list of dependencies of the rules,
generated with -M/-MM/-MD/-MMD. This lets CMake/Ninja recognize that certain
C/C++/ObjC files need to be recompiled (if a blacklist is updated).

Reviewers: pcc

Subscribers: rsmith, honggyu.kim, pcc, cfe-commits

Differential Revision: http://reviews.llvm.org/D11968

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244867 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-13 04:04:37 +00:00
Richard Smith 3a421c44a4 [modules] When building a dependency file, include module maps parsed in the
current compilation, not just those from imported modules.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244413 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-09 04:46:57 +00:00
Alexander Kornienko 8ca7705aa3 Revert r240270 ("Fixed/added namespace ending comments using clang-tidy").
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240353 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-22 23:07:51 +00:00
Alexander Kornienko ac58acc7f2 Fixed/added namespace ending comments using clang-tidy. NFC
The patch is generated using this command:

  $ tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \
      -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \
      work/llvm/tools/clang

To reduce churn, not touching namespaces spanning less than 10 lines.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240270 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-22 09:47:44 +00:00
Paul Robinson 81d0e20410 Break \# in a depfile the same way as gcc.
Backslash followed by # in a filename should have both characters
escaped, if you do it the way GNU Make wants.  GCC doesn't, so we do
it the way GCC does rather than the way GNU Make wants.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@237304 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-13 22:33:50 +00:00
Paul Robinson f5c6ef2efb Fix dependency file escaping.
When writing a dependency (.d) file, if space or # is immediately
preceded by one or more backslashes, escape the backslashes as well as
the space or # character. Otherwise leave backslash alone.
This straddles the fence between BSD Make (which does no escaping at
all, and does not support space or # in filespecs) and GNU Make (which
does support escaping, but will fall back to the filespec as-written
if the escaping doesn't match an existing file).

Differential Revision: http://reviews.llvm.org/D9208


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@237296 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-13 21:18:15 +00:00
Paul Robinson cc44eec4a2 Support generating NMake/Jom-style depfiles.
NMake is a Make-like builder that comes with Microsoft Visual Studio.
Jom (https://wiki.qt.io/Jom) is an NMake-compatible build tool.
Dependency files for NMake/Jom need to use double-quotes to wrap
filespecs containing special characters, instead of the backslash
escapes that GNU Make wants.

Adds the -MV option, which specifies to use double-quotes as needed
instead of backslash escapes when writing the dependency file.

Differential Revision: http://reviews.llvm.org/D9260


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@235903 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-27 18:14:32 +00:00
David Blaikie 14b0eac48e Update for LLVM API change
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222303 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-19 02:56:13 +00:00
David Majnemer 78e394b434 Frontend: Don't include stdin in the dependency list for an object file
GCC doesn't do this and it semes weird to include a file that we can't
open.

This fixes PR21362.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220726 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-27 22:31:50 +00:00
Craig Topper c6da4d1d6c Unique_ptrify PPCallbacks ownership.
Unique_ptr creation stil needs to be moved earlier at some of the call sites.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217474 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-10 04:53:53 +00:00
Rafael Espindola 97b51af3b9 Update for llvm api change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216397 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-25 18:17:04 +00:00
David Blaikie cde40130ce unique_ptr-ify ASTReaderListener in the ASTReader
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215317 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-10 16:54:39 +00:00
Ben Langmuir f4f9e50a67 Consider module depedencies when checking a preamble in libclang
Add module dependencies (header files, module map files) to the list of
files to check when deciding whether to rebuild a preamble. That fixes
using preambles with module imports so long as they are in
non-overridden files.

My intent is to use to unify the existing dependency collectors to the
new “DependencyCollectory” interface from this commit, starting with the
DependencyFileGenerator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212060 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-30 20:04:14 +00:00
Craig Topper d24fb6c947 [C++11] Use 'nullptr'. Frontend edition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209389 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-22 04:46:25 +00:00
Argyrios Kyrtzidis b18df473d3 [Modules] Emit the module file paths as dependencies of the PCH when we are building one.
This is because the PCH is tied to the module files, if one of the module files changes or gets removed
the build system should re-build the PCH file.

rdar://16321245

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203885 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-14 03:07:38 +00:00
Argyrios Kyrtzidis 5075f49acd [Modules] Make sure that the synthesized file "__inferred_module.map" doesn't show up as dependency of a module file.
Follow-up for rdar://15459210

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203882 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-14 02:26:31 +00:00
Craig Topper 85bba31eb7 [C++11] Add 'override' keyword to virtual methods that override their base class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203758 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-13 06:07:04 +00:00
Ben Langmuir 9f36327e3d Add dependencies from imported modules with -MD
Add module dependencies to the dependency files created by -MD/-MMD/etc.
by attaching an ASTReaderListener that will call into the dependency
file generator when a module input file is seen in the serialized AST.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203208 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 06:40:32 +00:00
Rafael Espindola 2018c6b469 Update for llvm api change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202053 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-24 18:20:21 +00:00
Rafael Espindola 19029e8c3f Don't assume that F_None is the default. It is about to change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202040 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-24 15:06:52 +00:00
Rafael Espindola ce314dc250 Use the simpler version of llvm::sys::fs::remove when possible.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198957 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-10 21:32:14 +00:00
Benjamin Kramer 0b214905f7 Modernize some low-hanging PathV1 uses.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183903 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-13 14:26:04 +00:00
Rafael Espindola 34392373fe Include PathV1.h in files that use it.
This is preparation for replacing Path.h with PathV2.h.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183781 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-11 19:59:07 +00:00
Benjamin Kramer ddc15c40d2 Escape # and $ in dependency files.
Fixes PR15642.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178540 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-02 13:38:48 +00:00
Argyrios Kyrtzidis f8afcffe6a For PPCallbacks::InclusionDirective() add a parameter for the module, whenever
an inclusion directive was automatically turned into a module import, and
PPCallbacks::moduleImport() for an explicit module import.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164874 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-29 01:06:10 +00:00
Argyrios Kyrtzidis da31359244 Per discussion in http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120917/064551.html
have PPCallbacks::InclusionDirective pass the character range for the filename quotes or brackets.

rdar://11113134 & http://llvm.org/PR13880

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164743 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-27 01:42:07 +00:00
Peter Collingbourne 1b91ab467c Delete the depfile if we could not open a header file. We cannot
generate any reasonable depfile if a header is missing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145019 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-21 00:01:14 +00:00
Argyrios Kyrtzidis c892c5fa92 For the FileChanged Preprocessor callback, when exiting a file, pass its FileID.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141681 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11 17:29:44 +00:00
Eli Friedman f84139a133 Change err_pp_file_not_found back to an Error; when it's a Warning, we suppress it in system headers. And it is not a good idea to suppress it in system headers. (This was originally changed in r134996 to implement -MG.)
Fixes <rdar://10041960>.  And also brings down the number of warnings without a flag by one :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138842 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-30 23:07:51 +00:00
Chandler Carruth 402785357a Mechanically rename SourceManager::getInstantiationLoc and
FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part
of the API and documentation update from 'instantiation' as the term for
macros to 'expansion'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135914 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 16:49:02 +00:00
Chris Lattner 5f9e272e63 remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-23 10:55:15 +00:00
Peter Collingbourne bb52786da8 Implement -MG. Fixes PR9613
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134996 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-12 19:35:15 +00:00
Eli Friedman a6e023c449 Fix up dependency file name printing to more closely match that of gcc, including fixing a nasty recent regression that could make us print "/foo.h" with a command-line including "-I ./".
rdar://problem/9734352



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134728 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-08 20:17:28 +00:00
Fariborz Jahanian ccad3db9b9 Fixes a crash when generating dependency file stuff
and output file is not writable. // rdar://9286457.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129587 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15 18:49:23 +00:00
Chris Lattner 9d50634cfc fix clang -MM output to escape spaces in filenames. This seems to be
the only character that GCC escapes.  PR9224.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125707 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17 02:14:49 +00:00
Dan Gohman 55c6570bf6 It's not necessary to call flush() on a raw_ostream immediately prior
to deleting it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109441 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-26 21:29:50 +00:00
Daniel Dunbar dbd8209b33 PPCallbacks: Add hook for reaching the end of the main file, and fix DependencyFile to not do work in its destructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99257 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-23 05:09:10 +00:00
Kovarththanan Rajaratnam a5d10c4df4 Rename to addPPCallbacks since we're effectively adding a callback and maybe chaining it to an existing one
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97913 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-07 07:30:06 +00:00
Kovarththanan Rajaratnam 92e4443fcc Don't assert if PP already contains a valid PP callback. The PP can handle multiple callbacks (using PPChainedCallbacks)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97910 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-07 07:18:58 +00:00
Benjamin Kramer bd21828179 Remove VISIBILITY_HIDDEN from anonymous namespaces in libFrontend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-28 10:07:24 +00:00
Daniel Dunbar ca11f61233 Sink AttachDependencyFileGen into CreatePreprocessor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86881 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11 21:44:00 +00:00
Daniel Dunbar 0e0bae8139 Add DependencyOutputOptions to wrap -M... options, and propogate to
CompilerInvocation and clang-cc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86880 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-11 21:43:12 +00:00
Mike Stump 1eb4433ac4 Remove tabs, and whitespace cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 15:08:12 +00:00
Eli Friedman ac8d6298a8 Clean up some unnecessary includes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72101 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-19 04:30:57 +00:00