From 9dd834653b811ad20382e98a87dff824980c9916 Mon Sep 17 00:00:00 2001 From: dim Date: Sun, 21 Jun 2015 14:00:56 +0000 Subject: Vendor import of clang trunk r240225: https://llvm.org/svn/llvm-project/cfe/trunk@240225 --- test/Modules/Inputs/submodules-merge-defs/defs.h | 30 +++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'test/Modules/Inputs/submodules-merge-defs/defs.h') diff --git a/test/Modules/Inputs/submodules-merge-defs/defs.h b/test/Modules/Inputs/submodules-merge-defs/defs.h index 68b57a4..247b05c 100644 --- a/test/Modules/Inputs/submodules-merge-defs/defs.h +++ b/test/Modules/Inputs/submodules-merge-defs/defs.h @@ -31,7 +31,7 @@ template struct F { template int F::f() { return 0; } template template int F::g() { return 0; } template int F::n = 0; -template<> template int F::g() { return 0; } +//template<> template int F::g() { return 0; } // FIXME: Re-enable this once we support merging member specializations. template<> struct F { int h(); }; inline int F::h() { return 0; } template struct F { int i(); }; @@ -46,3 +46,31 @@ namespace G { template class K = F> int H(int a = 1); template class K = F> using I = decltype(H()); +template class K = F> struct J {}; + +namespace NS { + struct A {}; + template struct B : A {}; + template struct B : B {}; + template<> struct B : B {}; + inline void f() {} +} + +namespace StaticInline { + struct X {}; + static inline void f(X); + static inline void g(X x) { f(x); } +} + +namespace FriendDefArg { + template struct A; + template struct B; + template class = A> struct C; + template class = A> struct D {}; + template struct Y { + template friend struct A; + template friend struct B; + template class> friend struct C; + template class> friend struct D; + }; +} -- cgit v1.1