2 // { dg-options "-O3" }
4 // Make sure that the call to terminate within F2 is not eliminated
5 // by incorrect MUST_NOT_THROW optimization. Note that we expect F1
6 // to be inlined into F2 in order to expose this case.
11 static volatile int zero = 0;
13 // Note that we need F0 to not be marked nothrow, though we don't actually
14 // want a throw to happen at runtime here. The noinline tag is merely to
15 // make sure the assembly in F0 is not unnecessarily complex.
16 static void __attribute__((noinline)) f0()
40 static void __attribute__((noinline)) f2()
53 std::set_terminate (pass);