summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/export_as_test.c
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2017-09-14 23:38:44 +0000
committerDouglas Gregor <dgregor@apple.com>2017-09-14 23:38:44 +0000
commitf0b11de279e7ef31c36b7baa71f9b1b172591dab (patch)
tree64e76b91fbc5f49a9c08e46bb0236c4c3ff49cf9 /clang/test/Modules/export_as_test.c
parent672281a5116d255e8f18254301d907022f13e4df (diff)
downloadbcm5719-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.c9
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
+
+
OpenPOWER on IntegriCloud