On 07/22/16 14:49, Bernd Edlinger wrote: > > Hmm, cough... > > Boot-strap and reg-test was OK, but... > > I just noticed that the new built-ins do not quite work as expected. > > First with C++ there is no warning in this example although the > parameters are different: > > cat test2.C > extern "C" > void savectx () __attribute__((nothrow)); > > int test () throw() > { > savectx (); > return 0; > } > > > and what I do not understand at all in the moment, is: > although both the builtin and the explict header say > "nothrow" there is still eh code emitted that was not > there before. >
I have enterd this in bugzilla here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71973 Before that is solved, new built-in functions will not help too much, that's clear now. > So I would like to split that patch again, in the > cleanup of special_function_p and drop the new built-ins > in the moment, until I understand what went wrong there. > The built-in were just meant to bring up warnings, and > are therefore less important. > > > Sorry for all the iterations this took already :( > > So here is the next version of the patch that I am gonna try. > > > Is it OK for trunk? > > > Thanks > Bernd. Richard, this was the latest version of the patch: https://gcc.gnu.org/ml/gcc-patches/2016-07/msg01481.html Are you OK with my clean-up of the presumably dead function names, or would you like to keep the quirks in special_function_p for now and just remove ECF_NORETURN and ECF_LEAF? Note, that I still consider it incorrect, that special_function_p cannot distinguish between C and C++ bindings though. Thanks Bernd.