llvm-project/clang/lib/Frontend
Volodymyr Sapsai a4c53284c1 Add a callback for `__has_include` and use it for dependency scanning.
This adds a preprocessor callback for the `__has_include` and
`__has_include_next` directives.

Successful checking for the presence of a header should add it to the list of
header dependencies so this overrides the callback in the dependency scanner.

Patch by Pete Cooper with some additions by me.

rdar://problem/39545636

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

llvm-svn: 342517
2018-09-18 23:27:02 +00:00
..
Rewrite [modules] Support use of -E on modules built from the command line. 2018-09-15 01:21:18 +00:00
ASTConsumers.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ASTMerge.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ASTUnit.cpp [CodeComplete] Add completions for filenames in #include directives. 2018-09-18 08:40:41 +00:00
CMakeLists.txt Use special new Clang flag 'FrontendTimesIsEnabled' instead of 'llvm::TimePassesIsEnabled' inside -ftime-report feature. 2018-04-23 09:22:30 +00:00
CacheTokens.cpp Support: Simplify endian stream interface. NFCI. 2018-05-18 19:46:24 +00:00
ChainedDiagnosticConsumer.cpp
ChainedIncludesSource.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
CodeGenOptions.cpp Use an enum value instead of a string. 2018-01-18 00:20:03 +00:00
CompilerInstance.cpp [modules] Frontend support for building a header module from a list of 2018-09-15 01:21:15 +00:00
CompilerInvocation.cpp [modules] Frontend support for building a header module from a list of 2018-09-15 01:21:15 +00:00
CreateInvocationFromCommandLine.cpp Use vfs::FileSystem in ASTUnit when creating CompilerInvocation. 2017-06-28 15:06:34 +00:00
DependencyFile.cpp Add a callback for `__has_include` and use it for dependency scanning. 2018-09-18 23:27:02 +00:00
DependencyGraph.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
DiagnosticRenderer.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
FrontendAction.cpp [modules] Support use of -E on modules built from the command line. 2018-09-15 01:21:18 +00:00
FrontendActions.cpp [modules] Support use of -E on modules built from the command line. 2018-09-15 01:21:18 +00:00
FrontendOptions.cpp [Frontend] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-26 21:45:04 +00:00
FrontendTiming.cpp Use special new Clang flag 'FrontendTimesIsEnabled' instead of 'llvm::TimePassesIsEnabled' inside -ftime-report feature. 2018-04-23 09:22:30 +00:00
HeaderIncludeGen.cpp [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP or /P 2018-05-04 15:58:31 +00:00
InitHeaderSearch.cpp [frontend] Don't include the C++ stdlib for -x assembler-with-cpp 2018-06-28 23:23:45 +00:00
InitPreprocessor.cpp Reverted the "[CUDA/OpenMP] Define only some host macros during device compilation" 2018-08-30 20:43:39 +00:00
LangStandards.cpp Don't accept -std= values that would switch us to a different source language. 2017-04-26 23:44:33 +00:00
LayoutOverrideSource.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
LogDiagnosticPrinter.cpp
ModuleDependencyCollector.cpp Reland '[clang] Adding CharacteristicKind to PPCallbacks::InclusionDirective' 2018-05-10 19:05:36 +00:00
MultiplexConsumer.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
PCHContainerOperations.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
PrecompiledPreamble.cpp [Preamble] Fix incorrect usage of std::error_category 2018-08-29 14:28:04 +00:00
PrintPreprocessedOutput.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SerializedDiagnosticPrinter.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
SerializedDiagnosticReader.cpp [Frontend] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-26 21:45:04 +00:00
TestModuleFileExtension.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
TestModuleFileExtension.h Module file extensions: pass a Sema through to the extension writer. 2015-12-08 22:43:32 +00:00
TextDiagnostic.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
TextDiagnosticBuffer.cpp [Frontend] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2018-03-22 00:53:26 +00:00
TextDiagnosticPrinter.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
VerifyDiagnosticConsumer.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00