Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/eh/spec10.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Make sure that we call terminate when a throw() spec is violated even // with -fnothrow-opt. The function pointers are there to make sure that // the compiler doesn't get clever about optimizing the calls based on // knowledge about the called functions. // { dg-options "-fnothrow-opt" } // { dg-do run } #include <exception> #include <cstdlib> void my_terminate () { std::exit (0); } void g() { throw 1; } void (*p1)() = g; void f() throw() { p1(); } void (*p2)() = f; void h() { p2(); } int main() { std::set_terminate (my_terminate); try { h(); } catch (int) { } return 1; }