diff options
Diffstat (limited to 'test/SemaTemplate/function-template-specialization-noreturn.cpp')
-rw-r--r-- | test/SemaTemplate/function-template-specialization-noreturn.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/SemaTemplate/function-template-specialization-noreturn.cpp b/test/SemaTemplate/function-template-specialization-noreturn.cpp index 3e1f618..672da27 100644 --- a/test/SemaTemplate/function-template-specialization-noreturn.cpp +++ b/test/SemaTemplate/function-template-specialization-noreturn.cpp @@ -6,3 +6,15 @@ template <int N> void __attribute__((noreturn)) f3() { __builtin_unreachable(); } template <> void f3<1>() { } // expected-warning {{function declared 'noreturn' should not return}} + +#if __cplusplus >= 201103L +namespace PR21942 { +template <int> +struct A { + void foo[[noreturn]](); +}; + +template <> +void A<0>::foo() {} // expected-warning{{function declared 'noreturn' should not return}} +} +#endif |