https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88482
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Sat Dec 15 23:51:31 2018 New Revision: 267179 URL: https://gcc.gnu.org/viewcvs?rev=267179&root=gcc&view=rev Log: PR c++/88482 * except.c (verify_library_fn): New function. (declare_library_fn): Use it. Initialize TM even if the non-TM library function has been user declared. (do_end_catch): Don't set TREE_NOTHROW on error_mark_node. (expand_start_catch_block): Don't call initialize_handler_parm for error_mark_node. (build_throw): Use verify_library_fn. Initialize TM even if the non-TM library function has been user declared. Don't crash if any library fn is error_mark_node. * g++.dg/eh/builtin5.C: New test. * g++.dg/eh/builtin6.C: New test. * g++.dg/eh/builtin7.C: New test. * g++.dg/eh/builtin8.C: New test. * g++.dg/eh/builtin9.C: New test. * g++.dg/eh/builtin10.C: New test. * g++.dg/eh/builtin11.C: New test. * g++.dg/parse/crash55.C: Adjust expected diagnostics. * eh_cpp.cc (__cxa_throw): Change DEST argument type from void * to void (*) (void *). (_ITM_cxa_throw): Likewise. * libitm.h (_ITM_cxa_throw): Likewise. * libitm.texi (_ITM_cxa_throw): Likewise. Added: trunk/gcc/testsuite/g++.dg/eh/builtin10.C trunk/gcc/testsuite/g++.dg/eh/builtin11.C trunk/gcc/testsuite/g++.dg/eh/builtin5.C trunk/gcc/testsuite/g++.dg/eh/builtin6.C trunk/gcc/testsuite/g++.dg/eh/builtin7.C trunk/gcc/testsuite/g++.dg/eh/builtin8.C trunk/gcc/testsuite/g++.dg/eh/builtin9.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/except.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/parse/crash55.C trunk/libitm/ChangeLog trunk/libitm/eh_cpp.cc trunk/libitm/libitm.h trunk/libitm/libitm.texi