summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Modules')
-rw-r--r--clang/test/Modules/Inputs/merge-template-specializations/a.h1
-rw-r--r--clang/test/Modules/Inputs/merge-template-specializations/b.h2
-rw-r--r--clang/test/Modules/Inputs/merge-template-specializations/c.h3
-rw-r--r--clang/test/Modules/Inputs/merge-template-specializations/module.modulemap3
-rw-r--r--clang/test/Modules/cxx-templates.cpp8
-rw-r--r--clang/test/Modules/merge-template-specializations.cpp5
6 files changed, 18 insertions, 4 deletions
diff --git a/clang/test/Modules/Inputs/merge-template-specializations/a.h b/clang/test/Modules/Inputs/merge-template-specializations/a.h
new file mode 100644
index 00000000000..fb05647c0aa
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-template-specializations/a.h
@@ -0,0 +1 @@
+template<unsigned> class SmallString {};
diff --git a/clang/test/Modules/Inputs/merge-template-specializations/b.h b/clang/test/Modules/Inputs/merge-template-specializations/b.h
new file mode 100644
index 00000000000..96ce2bb1d8d
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-template-specializations/b.h
@@ -0,0 +1,2 @@
+#include "a.h"
+void f(SmallString<256>&);
diff --git a/clang/test/Modules/Inputs/merge-template-specializations/c.h b/clang/test/Modules/Inputs/merge-template-specializations/c.h
new file mode 100644
index 00000000000..100463a2f7f
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-template-specializations/c.h
@@ -0,0 +1,3 @@
+#include "a.h"
+struct X { SmallString<256> ss; };
+#include "b.h"
diff --git a/clang/test/Modules/Inputs/merge-template-specializations/module.modulemap b/clang/test/Modules/Inputs/merge-template-specializations/module.modulemap
new file mode 100644
index 00000000000..77e0a89e39a
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-template-specializations/module.modulemap
@@ -0,0 +1,3 @@
+module a { header "a.h" export * }
+module b { header "b.h" export * }
+module c { header "c.h" export * }
diff --git a/clang/test/Modules/cxx-templates.cpp b/clang/test/Modules/cxx-templates.cpp
index 12dfdd0546e..c2d38497dd7 100644
--- a/clang/test/Modules/cxx-templates.cpp
+++ b/clang/test/Modules/cxx-templates.cpp
@@ -249,10 +249,10 @@ namespace Std {
// CHECK-DUMP: ClassTemplateDecl {{.*}} <{{.*[/\\]}}cxx-templates-common.h:1:1, {{.*}}> col:{{.*}} in cxx_templates_common SomeTemplate
// CHECK-DUMP: ClassTemplateSpecializationDecl {{.*}} prev {{.*}} SomeTemplate
-// CHECK-DUMP-NEXT: TemplateArgument type 'char [1]'
-// CHECK-DUMP: ClassTemplateSpecializationDecl {{.*}} SomeTemplate definition
-// CHECK-DUMP-NEXT: TemplateArgument type 'char [1]'
-// CHECK-DUMP: ClassTemplateSpecializationDecl {{.*}} prev {{.*}} SomeTemplate
// CHECK-DUMP-NEXT: TemplateArgument type 'char [2]'
// CHECK-DUMP: ClassTemplateSpecializationDecl {{.*}} SomeTemplate definition
// CHECK-DUMP-NEXT: TemplateArgument type 'char [2]'
+// CHECK-DUMP: ClassTemplateSpecializationDecl {{.*}} prev {{.*}} SomeTemplate
+// CHECK-DUMP-NEXT: TemplateArgument type 'char [1]'
+// CHECK-DUMP: ClassTemplateSpecializationDecl {{.*}} SomeTemplate definition
+// CHECK-DUMP-NEXT: TemplateArgument type 'char [1]'
diff --git a/clang/test/Modules/merge-template-specializations.cpp b/clang/test/Modules/merge-template-specializations.cpp
new file mode 100644
index 00000000000..25db93fbbb2
--- /dev/null
+++ b/clang/test/Modules/merge-template-specializations.cpp
@@ -0,0 +1,5 @@
+// RUN: rm -rf %t
+// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fimplicit-module-maps -fmodules-local-submodule-visibility -I%S/Inputs/merge-template-specializations -std=c++11 -verify %s
+// expected-no-diagnostics
+#include "c.h"
+X x;
OpenPOWER on IntegriCloud