1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
// PR c++/59255 // { dg-options "-std=c++11 -O2" } struct S { __attribute__((noinline, noclone)) ~S () noexcept (true) { if (fn) fn (1); } void (*fn) (int); }; __attribute__((noinline, noclone)) void foo (int x) { if (x != 1) throw 1; } int main () { for (int i = 0; i < 100; i++) { S s; s.fn = foo; } }