| // PR c++/53903 |
| // { dg-do compile { target c++11 } } |
| |
| struct T |
| { |
| T() noexcept(false) { } |
| ~T() noexcept(false) { } |
| }; |
| |
| T t; |
| |
| struct A |
| { |
| A() noexcept; |
| ~A() noexcept; |
| |
| T t; |
| }; |
| |
| A::A() noexcept = default; |
| A::~A() noexcept = default; |
| |
| struct U |
| { |
| U() noexcept(false) { } |
| ~U() noexcept(false) { } |
| }; |
| |
| U u; |
| |
| struct B |
| { |
| B() noexcept(false); |
| ~B() noexcept(false); |
| |
| U u; |
| }; |
| |
| B::B() noexcept(false) = default; |
| B::~B() noexcept(false) = default; |
| |
| B b; |
| |
| struct V |
| { |
| V() noexcept(false) { } |
| ~V() noexcept(false) { } |
| }; |
| |
| V v; |
| |
| struct C |
| { |
| C() noexcept = default; |
| ~C() noexcept = default; |
| |
| V v; |
| }; |
| |
| C c; |