Created attachment 31439 [details] reduced testcase Compiler output: $ gcc -O -fnon-call-exceptions -fvtable-verify=preinit testcase.C testcase.C: In function 'void print()': testcase.C:44:6: internal compiler error: in mark_reachable_handlers, at tree-eh.c:3833 void print () ^ 0xd1ca11 mark_reachable_handlers /mnt/svn/gcc-trunk/gcc/tree-eh.c:3833 0xd1cb52 remove_unreachable_handlers /mnt/svn/gcc-trunk/gcc/tree-eh.c:3866 0xd1e5f5 execute_cleanup_eh_1 /mnt/svn/gcc-trunk/gcc/tree-eh.c:4536 0xd1e5f5 execute_cleanup_eh /mnt/svn/gcc-trunk/gcc/tree-eh.c:4569 0xd1e5f5 execute /mnt/svn/gcc-trunk/gcc/tree-eh.c:4614 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. $ gcc -v Using built-in specs. COLLECT_GCC=/mnt/svn/gcc-trunk/binary-latest/bin/gcc COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-205916-lto-fortran-checking-yes-rtl-df/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /mnt/svn/gcc-trunk//configure --enable-checking=yes,rtl,df --enable-languages=c,c++,lto,fortran --prefix=/mnt/svn/gcc-trunk/binary-205916-lto-fortran-checking-yes-rtl-df/ --without-cloog --without-ppl Thread model: posix gcc version 4.9.0 20131212 (experimental) (GCC)
Confirmed.
GCC 4.9.0 has been released
This is caused by the verification call being inserted after an exception handler landing pad, in the same basic block as the landing pad, when GCC expects the landing pad statement to be the last statement in the basic block. The fix for this will be to split all the outgoing edges and insert new basic blocks on each, with the verification call in there instead. I will work on this, but it may take me a little time to get right.
GCC 4.9.1 has been released.
GCC 4.9.2 has been released.
GCC 4.9.3 has been released.
*** Bug 101689 has been marked as a duplicate of this bug. ***
*** Bug 98101 has been marked as a duplicate of this bug. ***