| 1 | // RUN: %clang_cc1 -std=c++1z -fexceptions -fcxx-exceptions -fsyntax-only -verify %s |
| 2 | |
| 3 | // In C++1z, we can put an exception-specification on any function declarator; the |
| 4 | // corresponding paragraph from C++14 and before was deleted. |
| 5 | // expected-no-diagnostics |
| 6 | |
| 7 | void f() noexcept; |
| 8 | void (*fp)() noexcept; |
| 9 | void (**fpp)() noexcept; |
| 10 | void g(void (**pfa)() noexcept); |
| 11 | void (**h())() noexcept; |
| 12 | |
| 13 | template<typename T> struct A {}; |
| 14 | template<void() noexcept> struct B {}; |
| 15 | A<void() noexcept> a; |
| 16 | B<f> b; |
| 17 | auto *p = new decltype(f)**; |
| 18 | |