diff options
author | dim <dim@FreeBSD.org> | 2015-01-18 16:23:48 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-01-18 16:23:48 +0000 |
commit | c86b984ea8ecb3e944dc3de48539f4c1f65851ea (patch) | |
tree | 3eb853da77d46cc77c4b017525a422f9ddb1385b /test/Parser/cxx-template-decl.cpp | |
parent | c696171ff15f0ee60dea4abfd99a135473c95656 (diff) | |
download | FreeBSD-src-c86b984ea8ecb3e944dc3de48539f4c1f65851ea.zip FreeBSD-src-c86b984ea8ecb3e944dc3de48539f4c1f65851ea.tar.gz |
Vendor import of clang RELEASE_360/rc1 tag r226102 (effectively, 3.6.0 RC1):
https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_360/rc1@226102
Diffstat (limited to 'test/Parser/cxx-template-decl.cpp')
-rw-r--r-- | test/Parser/cxx-template-decl.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/Parser/cxx-template-decl.cpp b/test/Parser/cxx-template-decl.cpp index 8b2b120..efa42ad 100644 --- a/test/Parser/cxx-template-decl.cpp +++ b/test/Parser/cxx-template-decl.cpp @@ -210,3 +210,31 @@ void Instantiate() { } } + +namespace func_tmpl_spec_def_in_func { +// We failed to diagnose function template specialization definitions inside +// functions during recovery previously. +template <class> void FuncTemplate() {} +void TopLevelFunc() { + // expected-error@+2 {{expected a qualified name after 'typename'}} + // expected-error@+1 {{function definition is not allowed here}} + typename template <> void FuncTemplate<void>() { } + // expected-error@+1 {{function definition is not allowed here}} + void NonTemplateInner() { } +} +} + +namespace broken_baseclause { +template<typename T> +struct base { }; + +struct t1 : base<int, + public: // expected-error {{expected expression}} +}; // expected-error {{expected class name}} +// expected-error@-1 {{expected '{' after base class list}} +struct t2 : base<int, + public // expected-error {{expected expression}} +}; // expected-error {{expected class name}} +// expected-error@-1 {{expected '{' after base class list}} + +} |