llvm-project/clang/lib/Lex
Douglas Gregor 35b13ece23 <rdar://problem/10796651> Introduce configuration macros into module maps.
Configuration macros are macros that are intended to alter how a
module works, such that we need to build different module variants
for different values of these macros. A module can declare its
configuration macros, in which case we will complain if the definition
of a configation macro on the command line (or lack thereof) differs
from the current preprocessor state at the point where the module is
imported. This should eliminate some surprises when enabling modules,
because "#define CONFIG_MACRO ..." followed by "#include
<module/header.h>" would silently ignore the CONFIG_MACRO setting. At
least it will no longer be silent about it.

Configuration macros are eventually intended to help reduce the number
of module variants that need to be built. When the list of
configuration macros for a module is exhaustive, we only need to
consider the settings for those macros when building/finding the
module, which can help isolate modules for various project-specific -D
flags that should never affect how modules are build (but currently do).

llvm-svn: 177466
2013-03-20 00:22:05 +00:00
..
CMakeLists.txt clang/Lex: [CMake] Update CMakefiles since r169229. 2012-12-04 07:40:33 +00:00
HeaderMap.cpp Remove some stray uses of <ctype.h> functions. 2013-02-09 10:09:43 +00:00
HeaderSearch.cpp [Modules] Don't eagerly load and associate all the module header files. 2013-03-13 21:13:51 +00:00
Lexer.cpp Add -Wc99-compat warning for C11 unicode string and character literals. 2013-03-11 18:01:42 +00:00
LiteralSupport.cpp Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h. 2013-02-08 22:30:41 +00:00
MacroArgs.cpp Handle _Pragma on a u8, u, or U string literal per the C11 specification. Also 2013-03-09 23:30:15 +00:00
MacroArgs.h Remove useless 'llvm::' qualifier from names like StringRef and others that are 2013-01-12 19:30:44 +00:00
MacroInfo.cpp [preprocessor] Split the MacroInfo class into two separate concepts, MacroInfo class 2013-02-20 00:54:57 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
ModuleMap.cpp <rdar://problem/10796651> Introduce configuration macros into module maps. 2013-03-20 00:22:05 +00:00
PPCaching.cpp [preprocessor] In Preprocessor::CachingLex() check whether there were more tokens 2012-04-04 02:57:01 +00:00
PPCallbacks.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
PPConditionalDirectiveRecord.cpp [preprocessor] Use MacroDirective in the preprocessor callbacks to make available the 2013-02-24 00:05:14 +00:00
PPDirectives.cpp PR15539: Record "evaluating if/elif condition" flag in the right place 2013-03-18 23:22:28 +00:00
PPExpressions.cpp PR15539: Record "evaluating if/elif condition" flag in the right place 2013-03-18 23:22:28 +00:00
PPLexerChange.cpp Add the module name to the 'incomplete umbrella header' warning. 2013-01-04 18:58:28 +00:00
PPMacroExpansion.cpp [preprocessor] Use MacroDirective in the preprocessor callbacks to make available the 2013-02-24 00:05:14 +00:00
PTHLexer.cpp Remove duplicate includes. 2012-12-21 17:07:08 +00:00
Pragma.cpp Handle _Pragma on a u8, u, or U string literal per the C11 specification. Also 2013-03-09 23:30:15 +00:00
PreprocessingRecord.cpp [preprocessor] Use MacroDirective in the preprocessor callbacks to make available the 2013-02-24 00:05:14 +00:00
Preprocessor.cpp [preprocessor] Use MacroDirective in the preprocessor callbacks to make available the 2013-02-24 00:05:14 +00:00
PreprocessorLexer.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
ScratchBuffer.cpp Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset. 2011-09-19 20:40:19 +00:00
TokenConcatenation.cpp Simplify logic for avoiding concatenation after numeric constants. 2013-02-08 22:30:31 +00:00
TokenLexer.cpp [preprocessor] When "merging" macro argument tokens into one SLocEntry chunk, 2012-12-19 23:55:44 +00:00
UnicodeCharSets.h Properly validate UCNs for C99 and C++03 (both more restrictive than C(++)11). 2013-02-09 01:10:25 +00:00