[Modules] Add more language features to be used with requires-declarationFeatures added: c99, c11, c17, cplusplus14 and cplusplus17.rdar://problem/36328787rdar://problem/36668431llvm-svn: 3251
[Modules] Add more language features to be used with requires-declarationFeatures added: c99, c11, c17, cplusplus14 and cplusplus17.rdar://problem/36328787rdar://problem/36668431llvm-svn: 325154
show more ...
[coroutines] Support "coroutines" feature in module map requires clauseSummary: In order for libc++ to add `<experimental/coroutine>` to its module map, there has to be a feature that can be used t
[coroutines] Support "coroutines" feature in module map requires clauseSummary: In order for libc++ to add `<experimental/coroutine>` to its module map, there has to be a feature that can be used to detect if coroutines support is enabled in Clang. Reviewers: rsmithReviewed By: rsmithSubscribers: cfe-commitsDifferential Revision: https://reviews.llvm.org/D33538llvm-svn: 304107
Revert "[coroutines] Support "coroutines" feature in module map requires clause"This reverts commit r304054.llvm-svn: 304057
[coroutines] Support "coroutines" feature in module map requires clauseSummary: In order for libc++ to add `<experimental/coroutine>` to its module map, there has to be a feature that can be used to detect if coroutines support is enabled in Clang. Reviewers: rsmithReviewed By: rsmithSubscribers: cfe-commitsDifferential Revision: https://reviews.llvm.org/D33538llvm-svn: 304054
Add cc1 option '-fmodule-feature' to add custom values for 'requires' declsThis allows clang-based tools to specify custom features that can betested by the 'requires' declaration in a module map
Add cc1 option '-fmodule-feature' to add custom values for 'requires' declsThis allows clang-based tools to specify custom features that can betested by the 'requires' declaration in a module map file.llvm-svn: 227868
Allow a new syntax in a module requires-declaration: requires ! featureThe purpose of this is to allow (for instance) the module map for /usr/includeto exclude <tgmath.h> and <complex.h> when b
Allow a new syntax in a module requires-declaration: requires ! featureThe purpose of this is to allow (for instance) the module map for /usr/includeto exclude <tgmath.h> and <complex.h> when building in C++ (these headers areinstead provided by the C++ standard library in this case, and the glibc C<tgmath.h> header would otherwise try to include <complex.h>, resulting in amodule cycle).llvm-svn: 193549
When forming the link options for an imported module, also include thelink options for the modules it imports.llvm-svn: 172448
Re-uglify #public and #private to #__public_macro and #__private_macro.llvm-svn: 147469
Under -fmodules, accept #public <macroname> and #private <macroname>to make a macro public (the default for headers) or private,respectively.llvm-svn: 147455
Implement support for module requirements, which indicate the languagefeatures needed for a particular module to be available. This allowsmixed-language modules, where certain headers only work und
Implement support for module requirements, which indicate the languagefeatures needed for a particular module to be available. This allowsmixed-language modules, where certain headers only work under somelanguage variants (e.g., in C++, std.tuple might only be available inC++11 mode).llvm-svn: 147387
Tweak the syntax of umbrella headers, so that "umbrella" is treated asa modifier for a header declarartion, e.g., umbrella header "headername"Collapse the umbrella-handling code in the parser i
Tweak the syntax of umbrella headers, so that "umbrella" is treated asa modifier for a header declarartion, e.g., umbrella header "headername"Collapse the umbrella-handling code in the parser into theheader-handling code, so we don't duplicate the header-search logic.llvm-svn: 146159
Implement basic support for private headers in frameworks. In essence,when we load a module map (module.map) from a directory, also load aprivate module map (module_private.map) for that directory,
Implement basic support for private headers in frameworks. In essence,when we load a module map (module.map) from a directory, also load aprivate module map (module_private.map) for that directory, ifpresent. That private module map can inject a new submodule thatcaptures private headers.llvm-svn: 146012
Allow inferred submodules for any (sub)module that has an umbrella headerllvm-svn: 145945
Implement modules support for subframeworks (aka embeddedframeworks). A submodule can now be labeled as a "framework", andheader search will look into the appropriate Headers/PrivateHeaderssubdire
Implement modules support for subframeworks (aka embeddedframeworks). A submodule can now be labeled as a "framework", andheader search will look into the appropriate Headers/PrivateHeaderssubdirectories for named headers.llvm-svn: 145941
Parse inferred submodules in module maps, track their contents inModule, and (de-)serialize this information. Semantics of inferredsubmodules to follow.llvm-svn: 145864
Introduce an opt-in warning indicating when the compiler is treatingan #include/#import as a module import.llvm-svn: 145500
Add the notion of "framework" modules to module maps. Frameworkmodules (obviously) describe frameworks, and understand the headerlayout of frameworks.llvm-svn: 144921
For modules, all macros that aren't include guards are implicitlypublic. Add a __private_macro__ directive to hide a macro, similar tothe __module_private__ declaration specifier.llvm-svn: 142188
Add an experimental flag -fauto-module-import that automatically turns#include or #import direcctives of framework headers into moduleimports of the corresponding framework module.llvm-svn: 139860