llvm-project/clang/lib/Basic
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
..
Builtins.cpp Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here. 2012-12-20 19:22:21 +00:00
CMakeLists.txt Pull Lexer's CharInfo table out for general use throughout Clang. 2013-02-08 22:30:22 +00:00
CharInfo.cpp CharInfo: Add missing "using namespace clang::charinfo" in .cpp file. 2013-02-08 22:37:49 +00:00
Diagnostic.cpp Moving initialization into the initializer list and correcting capitalization, as suggested by Chandler. 2013-02-24 19:08:10 +00:00
DiagnosticIDs.cpp Fix typos: [Dd]iagnosic -> [Dd]iagnostic 2013-03-01 21:41:22 +00:00
FileManager.cpp <limits.h> includes <linux/limits.h> on Linux, no need to special-case it 2013-01-26 16:29:36 +00:00
FileSystemStatCache.cpp Extend stat query APIs to explicitly specify if the query is for 2012-12-11 07:48:23 +00:00
IdentifierTable.cpp Remove some stray uses of <ctype.h> functions. 2013-02-09 10:09:43 +00:00
LangOptions.cpp Add a *San + modules FIXME. 2013-02-07 01:09:29 +00:00
Makefile Use tabs instead of spaces. 2012-03-02 16:06:37 +00:00
Module.cpp <rdar://problem/10796651> Introduce configuration macros into module maps. 2013-03-20 00:22:05 +00:00
ObjCRuntime.cpp Add the ObjFW runtime. Patch by Jonathan Schleifer! 2012-07-12 02:07:58 +00:00
OperatorPrecedence.cpp s/CPlusPlus0x/CPlusPlus11/g 2013-01-02 11:42:31 +00:00
SourceLocation.cpp PR14581: Make SourceLocation::printToString work, or it will always return an empty string. 2012-12-12 14:17:17 +00:00
SourceManager.cpp Add one more sanity check in SourceManager::getFileIDLoaded(). 2013-03-01 03:43:33 +00:00
TargetInfo.cpp Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h. 2013-02-08 22:30:41 +00:00
Targets.cpp Remove driver support for Hexagon V2 and V3 2013-03-12 11:52:09 +00:00
TokenKinds.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
Version.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
VersionTuple.cpp Include llvm::Optional in clang/Basic/LLVM.h 2013-02-20 22:23:23 +00:00