diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-05-10 00:01:13 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-05-10 00:01:13 +0000 |
commit | f3597653fb1769ac394c18e451c1895545f8583d (patch) | |
tree | da5e1897d8e502a7dd56677a7ac313e8e43f4aef /clang/test/SemaTemplate/default-arguments.cpp | |
parent | 3388f7c0cbe7a2ec40f8a453abd7ec8e5afd7370 (diff) | |
download | bcm5719-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.cpp | 16 |
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; + } +} |