// DR 2604 - Attributes for an explicit specialization. // { dg-do compile { target c++11 } } // { dg-options "-Wunused-parameter" } template [[noreturn]] void foo ([[maybe_unused]] int i) { for (;;); } template<> void foo (int i) // { dg-warning "unused parameter 'i'" } { } template void bar (int i) // { dg-warning "unused parameter 'i'" } { } template<> [[noreturn]] void bar ([[maybe_unused]] int i) { for (;;); } [[noreturn]] void baz () { foo (0); } [[noreturn]] void qux () { foo (0); } // { dg-warning "'noreturn' function does return" } [[noreturn]] void garply () { bar (0); } // { dg-warning "'noreturn' function does return" } [[noreturn]] void corge () { bar (0); }