[Bug c++/88482] ICE when wrongly declaring __cxa_allocate_exception
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Dec 15 23:52:00 GMT 2018
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
More information about the Gcc-bugs
mailing list