https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71973
--- Comment #1 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- the bug goes away, if the fork signature is correct. extern "C" int fork () __attribute__((nothrow)); void bar () throw() { fork (); } does the right thing.