]> granicus.if.org Git - clang/commit
[Module map] Introduce a private module re-export directive.
authorDouglas Gregor <dgregor@apple.com>
Thu, 14 Sep 2017 23:38:44 +0000 (23:38 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 14 Sep 2017 23:38:44 +0000 (23:38 +0000)
commit763bd9136e59e77b6fbc68841855632547dd9882
tree3cefa9524cd398c951742b04d39575f702b3dfa0
parent36a127d6c7d12bc3cf47378798ea52e835be040b
[Module map] Introduce a private module re-export directive.

Introduce a new "export_as" directive for top-level modules, which
indicates that the current module is a "private" module whose symbols
will eventually be exported through the named "public" module. This is
in support of a common pattern in the Darwin ecosystem where a single
public framework is constructed of several private frameworks, with
(currently) header duplication and some support from the linker.

Addresses rdar://problem/34438420.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313316 91177308-0d34-0410-b5e6-96231b3b80d8
docs/Modules.rst
include/clang/Basic/DiagnosticLexKinds.td
include/clang/Basic/Module.h
include/clang/Serialization/ASTBitCodes.h
lib/Basic/Module.cpp
lib/Lex/ModuleMap.cpp
lib/Serialization/ASTReader.cpp
lib/Serialization/ASTWriter.cpp
test/Modules/Inputs/export_as_test.modulemap [new file with mode: 0644]
test/Modules/export_as_test.c [new file with mode: 0644]