Douglas Gregor
663b48f13b
Re-uglify #public and #private to #__public_macro and #__private_macro.
...
llvm-svn: 147469
2012-01-03 19:48:16 +00:00
Douglas Gregor
0bf886d41a
Under -fmodules, accept #public <macroname> and #private <macroname>
...
to make a macro public (the default for headers) or private,
respectively.
llvm-svn: 147455
2012-01-03 18:24:14 +00:00
Douglas Gregor
1fb5c3a63a
Implement support for module requirements, which indicate the language
...
features needed for a particular module to be available. This allows
mixed-language modules, where certain headers only work under some
language variants (e.g., in C++, std.tuple might only be available in
C++11 mode).
llvm-svn: 147387
2011-12-31 04:05:44 +00:00
Douglas Gregor
41e115a81a
Introduce an opt-in warning indicating when the compiler is treating
...
an #include/#import as a module import.
llvm-svn: 145500
2011-11-30 18:02:36 +00:00
Douglas Gregor
755b205519
Add the notion of "framework" modules to module maps. Framework
...
modules (obviously) describe frameworks, and understand the header
layout of frameworks.
llvm-svn: 144921
2011-11-17 22:09:43 +00:00
Douglas Gregor
ebf0049901
For modules, all macros that aren't include guards are implicitly
...
public. Add a __private_macro__ directive to hide a macro, similar to
the __module_private__ declaration specifier.
llvm-svn: 142188
2011-10-17 15:32:29 +00:00
Douglas Gregor
97eec24b0b
Add an experimental flag -fauto-module-import that automatically turns
...
#include or #import direcctives of framework headers into module
imports of the corresponding framework module.
llvm-svn: 139860
2011-09-15 22:00:41 +00:00