diff options
author | Douglas Gregor <dgregor@apple.com> | 2017-09-14 23:38:44 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2017-09-14 23:38:44 +0000 |
commit | f0b11de279e7ef31c36b7baa71f9b1b172591dab (patch) | |
tree | 64e76b91fbc5f49a9c08e46bb0236c4c3ff49cf9 /clang/test/Modules/export_as_test.c | |
parent | 672281a5116d255e8f18254301d907022f13e4df (diff) | |
download | bcm5719-llvm-f0b11de279e7ef31c36b7baa71f9b1b172591dab.tar.gz bcm5719-llvm-f0b11de279e7ef31c36b7baa71f9b1b172591dab.zip |
[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.
llvm-svn: 313316
Diffstat (limited to 'clang/test/Modules/export_as_test.c')
-rw-r--r-- | clang/test/Modules/export_as_test.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/Modules/export_as_test.c b/clang/test/Modules/export_as_test.c new file mode 100644 index 00000000000..a73d6bfc460 --- /dev/null +++ b/clang/test/Modules/export_as_test.c @@ -0,0 +1,9 @@ +// RUN: rm -rf %t +// RUN: not %clang_cc1 -fmodules -fmodules-cache-path=%t -fmodule-map-file=%S/Inputs/export_as_test.modulemap %s 2> %t.err +// RUN: FileCheck %s < %t.err + +// CHECK: export_as_test.modulemap:3:13: error: conflicting re-export of module 'PrivateFoo' as 'Foo' or 'Bar' +// CHECK: export_as_test.modulemap:4:13: warning: module 'PrivateFoo' already re-exported as 'Bar' +// CHECK: export_as_test.modulemap:7:15: error: only top-level modules can be re-exported as public + + |