diff options
author | dim <dim@FreeBSD.org> | 2015-12-30 11:49:41 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-12-30 11:49:41 +0000 |
commit | 3176e97f130184ece0e1a21352c8124cc83ff24a (patch) | |
tree | 0a5b74c0b9ca73aded34df95c91fcaf3815230d8 /test/Modules/template-default-args.cpp | |
parent | 1e9b8d38881c3213d1e67b0c47ab9b2c00721a5c (diff) | |
download | FreeBSD-src-3176e97f130184ece0e1a21352c8124cc83ff24a.zip FreeBSD-src-3176e97f130184ece0e1a21352c8124cc83ff24a.tar.gz |
Vendor import of clang trunk r256633:
https://llvm.org/svn/llvm-project/cfe/trunk@256633
Diffstat (limited to 'test/Modules/template-default-args.cpp')
-rw-r--r-- | test/Modules/template-default-args.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/test/Modules/template-default-args.cpp b/test/Modules/template-default-args.cpp index dc44534..9d16cbf 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<typename T> struct A; template<typename T> struct B; template<typename T> struct C; @@ -8,9 +10,12 @@ template<typename T = int> struct D; template<typename T = int> struct E {}; template<typename T> struct H {}; template<typename T = int, typename U = int> struct I {}; +END #include "b.h" +#include "d.h" +BEGIN template<typename T = int> struct A {}; template<typename T> struct B {}; template<typename T = int> struct B; @@ -18,9 +23,14 @@ template<typename T = int> struct C; template<typename T> struct D {}; template<typename T> struct F {}; template<typename T> struct G {}; +template<typename T> struct J {}; +template<typename T = int> struct J; +struct K : J<> {}; +END #include "c.h" +BEGIN A<> a; B<> b; extern C<> c; @@ -28,7 +38,9 @@ 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; +L<> *l; +END |