From: Richard Smith Date: Sun, 19 Jul 2015 23:44:27 +0000 (+0000) Subject: [modules] Add (already passing) test for template default argument merging when the... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2e6dd24e086464a4f4ad195fe9e9e0438eeef70b;p=clang [modules] Add (already passing) test for template default argument merging when the template is declared in a namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@242653 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Modules/Inputs/template-default-args/a.h b/test/Modules/Inputs/template-default-args/a.h index be760fe6f1..19c80549d1 100644 --- a/test/Modules/Inputs/template-default-args/a.h +++ b/test/Modules/Inputs/template-default-args/a.h @@ -1,3 +1,4 @@ +BEGIN template struct A {}; template struct B {}; template struct C; @@ -5,3 +6,4 @@ template struct D; template struct E; template struct G; template struct H; +END diff --git a/test/Modules/Inputs/template-default-args/c.h b/test/Modules/Inputs/template-default-args/c.h index 2946013b61..30cddb374f 100644 --- a/test/Modules/Inputs/template-default-args/c.h +++ b/test/Modules/Inputs/template-default-args/c.h @@ -1,2 +1,4 @@ +BEGIN template struct F; template struct I; +END diff --git a/test/Modules/template-default-args.cpp b/test/Modules/template-default-args.cpp index dc44534302..c2a6ddca2d 100644 --- a/test/Modules/template-default-args.cpp +++ b/test/Modules/template-default-args.cpp @@ -1,6 +1,8 @@ // RUN: rm -rf %t -// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -fno-modules-error-recovery -I %S/Inputs/template-default-args -std=c++11 %s +// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -fno-modules-error-recovery -I %S/Inputs/template-default-args -std=c++11 %s -DBEGIN= -DEND= +// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -verify -fmodules-cache-path=%t -fno-modules-error-recovery -I %S/Inputs/template-default-args -std=c++11 %s -DBEGIN="namespace N {" -DEND="}" +BEGIN template struct A; template struct B; template struct C; @@ -8,9 +10,11 @@ template struct D; template struct E {}; template struct H {}; template struct I {}; +END #include "b.h" +BEGIN template struct A {}; template struct B {}; template struct B; @@ -18,9 +22,11 @@ template struct C; template struct D {}; template struct F {}; template struct G {}; +END #include "c.h" +BEGIN A<> a; B<> b; extern C<> c; @@ -28,7 +34,8 @@ D<> d; E<> e; F<> f; G<> g; // expected-error {{default argument of 'G' must be imported from module 'X.A' before it is required}} -// expected-note@a.h:6 {{default argument declared here}} -H<> h; // expected-error {{default argument of 'H' must be imported from module 'X.A' before it is required}} // expected-note@a.h:7 {{default argument declared here}} +H<> h; // expected-error {{default argument of 'H' must be imported from module 'X.A' before it is required}} +// expected-note@a.h:8 {{default argument declared here}} I<> i; +END