summaryrefslogtreecommitdiffstats
path: root/test/SemaTemplate/function-template-specialization-noreturn.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaTemplate/function-template-specialization-noreturn.cpp')
-rw-r--r--test/SemaTemplate/function-template-specialization-noreturn.cpp12
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
OpenPOWER on IntegriCloud