summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/default-arguments.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-05-10 00:01:13 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-05-10 00:01:13 +0000
commitf3597653fb1769ac394c18e451c1895545f8583d (patch)
treeda5e1897d8e502a7dd56677a7ac313e8e43f4aef /clang/test/SemaTemplate/default-arguments.cpp
parent3388f7c0cbe7a2ec40f8a453abd7ec8e5afd7370 (diff)
downloadbcm5719-llvm-f3597653fb1769ac394c18e451c1895545f8583d.tar.gz
bcm5719-llvm-f3597653fb1769ac394c18e451c1895545f8583d.zip
When instantiating a friend function template, don't forget to inherit default template arguments from other declarations.
llvm-svn: 302603
Diffstat (limited to 'clang/test/SemaTemplate/default-arguments.cpp')
-rw-r--r--clang/test/SemaTemplate/default-arguments.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/default-arguments.cpp b/clang/test/SemaTemplate/default-arguments.cpp
index d3e249db7ee..b5b042c64a7 100644
--- a/clang/test/SemaTemplate/default-arguments.cpp
+++ b/clang/test/SemaTemplate/default-arguments.cpp
@@ -207,3 +207,19 @@ Y<false> y2;
} // end ns1
} // end ns PR26134
+
+namespace friends {
+ namespace ns {
+ template<typename> struct A {
+ template<typename> friend void f();
+ template<typename> friend struct X;
+ };
+ template<typename = int> void f(); // expected-warning 0-1{{extension}}
+ template<typename = int> struct X;
+ A<int> a;
+ }
+ namespace ns {
+ void g() { f(); }
+ X<int> *p;
+ }
+}
OpenPOWER on IntegriCloud