Tested x86_64-pc-linux-gnu, applying to trunk. -- >8 -- Fixed by r11-2412.
PR c++/57533 gcc/testsuite/ChangeLog: * g++.dg/eh/throw5.C: New test. --- gcc/testsuite/g++.dg/eh/throw5.C | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 gcc/testsuite/g++.dg/eh/throw5.C diff --git a/gcc/testsuite/g++.dg/eh/throw5.C b/gcc/testsuite/g++.dg/eh/throw5.C new file mode 100644 index 00000000000..554e8700df0 --- /dev/null +++ b/gcc/testsuite/g++.dg/eh/throw5.C @@ -0,0 +1,23 @@ +// PR c++/57533 +// { dg-do run { target c++11 } } + +struct X +{ + bool moved = false; + + X() = default; + X(const X&) = default; + X(X&& x) { x.moved = true; } +}; + +int main() +{ + X x; + try { + throw x; + } + catch(...) { + } + if (x.moved) + __builtin_abort(); +} base-commit: d4d4e874dee2d5b0abe5ceb9f2a78e5602e86030 -- 2.48.1