http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47490
--- Comment #2 from Mikael Pettersson <mikpe at it dot uu.se> 2011-01-30 01:23:33 UTC --- Fixed on trunk for 4.5 by r146570: Author: uweigand Date: Wed Apr 22 11:31:56 2009 New Revision: 146570 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=146570 Log: * function.c (expand_function_end): Do not emit a jump to the "naked" return label for fall-through returns. * except.c (sjlj_emit_function_exit): Always place the call to the unregister function at the location installed by expand_function_end. This seems to have been intended to fix SJLJ miscompilation on SPU, see the thread starting <http://gcc.gnu.org/ml/gcc-patches/2009-04/msg01265.html>. Backporting this change to 4.4.5 solves the test case failure there too.