summaryrefslogtreecommitdiff
path: root/test/Modules
diff options
context:
space:
mode:
authorVassil Vassilev <v.g.vassilev@gmail.com>2017-10-24 14:52:35 +0000
committerVassil Vassilev <v.g.vassilev@gmail.com>2017-10-24 14:52:35 +0000
commit91c475757be55ddd2948197478cff7c4335efdf0 (patch)
tree741aa4ba0e6a55505346fa153603868cdbb54277 /test/Modules
parentb4bdd6abd64045960b1d648cb5b7a8de6f292586 (diff)
downloadclang-91c475757be55ddd2948197478cff7c4335efdf0.tar.gz
[modules] Add a regression test for merging anon decls in extern C contexts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316444 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Modules')
-rw-r--r--test/Modules/merge-anon-in-extern_c.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/Modules/merge-anon-in-extern_c.cpp b/test/Modules/merge-anon-in-extern_c.cpp
new file mode 100644
index 0000000000..1443251f7e
--- /dev/null
+++ b/test/Modules/merge-anon-in-extern_c.cpp
@@ -0,0 +1,19 @@
+// RUN: rm -rf %t
+// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -verify %s
+// expected-no-diagnostics
+
+#pragma clang module build sys_types
+module sys_types {}
+#pragma clang module contents
+#pragma clang module begin sys_types
+extern "C" {
+ typedef union { bool b; } pthread_mutex_t;
+}
+#pragma clang module end
+#pragma clang module endbuild
+
+typedef union { bool b; } pthread_mutex_t;
+#pragma clang module import sys_types
+
+const pthread_mutex_t *m;
+