| // PR c++/36871 | |
| // { dg-do run } | |
| #include <cassert> | |
| struct A { | |
| template <class T> A (T) | |
| #if __cplusplus <= 201402L | |
| throw(int) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } } | |
| #endif | |
| ; | |
| }; | |
| struct B { | |
| B (B&) throw (); | |
| template <class T> B (T) | |
| #if __cplusplus <= 201402L | |
| throw(int) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } } | |
| #endif | |
| ; | |
| }; | |
| int main () | |
| { | |
| assert (__has_nothrow_copy (A)); | |
| assert (__has_nothrow_copy (B)); | |
| } |