1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 // Split from function-template-specialization.cpp because the noreturn warning 4 // requires analysis-based warnings, which the other errors in that test case 5 // disable. 6 f3()7template <int N> void __attribute__((noreturn)) f3() { __builtin_unreachable(); } f3()8template <> void f3<1>() { } // expected-warning {{function declared 'noreturn' should not return}} 9 10 #if __cplusplus >= 201103L 11 namespace PR21942 { 12 template <int> 13 struct A { 14 void foo[[noreturn]](); 15 }; 16 17 template <> foo()18void A<0>::foo() {} // expected-warning{{function declared 'noreturn' should not return}} 19 } 20 #endif 21