diff options
Diffstat (limited to 'clang/test/Modules')
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; |

