Introduce -fmodules-ignore-macro=NNN to ignore a macro when building/loading modules.
authorDouglas Gregor <dgregor@apple.com>
Thu, 7 Feb 2013 00:21:12 +0000 (00:21 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 7 Feb 2013 00:21:12 +0000 (00:21 +0000)
commit5dc3899ca417b344a272c109837f62a7ac840235
treea06b291ccb8b24a25a3239cb21689a36c6a70853
parent0588b509af71eda6956e674363f86bfb67b2e976
Introduce -fmodules-ignore-macro=NNN to ignore a macro when building/loading modules.

The use of this flag enables a modules optimization where a given set
of macros can be labeled as "ignored" by the modules
system. Definitions of those macros will be completely ignored when
building the module hash and will be stripped when actually building
modules. The overall effect is that this flag can be used to
drastically reduce the number of

Eventually, we'll want modules to tell us what set of macros they
respond to (the "configuration macros"), and anything not in that set
will be excluded. However, that requires a lot of per-module
information that must be accurate, whereas this option can be used
more readily.

Fixes the rest of <rdar://problem/13165109>.

llvm-svn: 174560
clang/include/clang/Driver/Options.td
clang/include/clang/Lex/HeaderSearchOptions.h
clang/lib/Driver/Tools.cpp
clang/lib/Frontend/CompilerInstance.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/test/Modules/ignored_macros.m