http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52353
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-02-23 13:05:30 UTC --- Created attachment 26732 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26732 patch Patch that fixes my issue and works until rtl_dce, which still removes the call, even though it throws internally (call_insn/u 15 13 36 3 (set (reg:DI 0 ax) (call (mem:QI (symbol_ref:DI ("__addvdi3") [flags 0x41]) [0 S1 A8]) (const_int 0 [0]))) /space/rguenther/src/svn/trunk/gcc/testsuite/gcc.dg/pr47086.c:11 636 {*call_value} (expr_list:REG_DEAD (reg:DI 5 di) (expr_list:REG_DEAD (reg:DI 4 si) (expr_list:REG_UNUSED (reg:DI 0 ax) (expr_list:REG_EH_REGION (const_int 1 [0x1]) (nil))))) (expr_list:REG_DEP_TRUE (use (reg:DI 4 si)) (expr_list:REG_DEP_TRUE (use (reg:DI 5 di)) (nil)))) ;; Successors: 5 (ab,abcall,eh,loop_exit) 4 [100.0%] (fallthru) ;; lr out 3 [bx] 6 [bp] 7 [sp] 16 [argp] 20 [frame] 41 [r12]