http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56982



Richard Biener <rguenth at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

      Known to work|                            |4.9.0

            Summary|[4.8/4.9 Regression] Bad    |[4.8 Regression] Bad

                   |optimization with setjmp()  |optimization with setjmp()



--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> 2013-04-19 
13:40:05 UTC ---

Author: rguenth

Date: Fri Apr 19 13:39:16 2013

New Revision: 198096



URL: http://gcc.gnu.org/viewcvs?rev=198096&root=gcc&view=rev

Log:

2013-04-19  Richard Biener  <rguent...@suse.de>



    PR tree-optimization/56982

    * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf

    function.

    * gimplify.c (gimplify_call_expr): Notice special calls.

    (gimplify_modify_expr): Likewise.

    * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like

    abnormal control flow receivers.

    (call_can_make_abnormal_goto): Handle cfun->calls_setjmp

    in the same way as cfun->has_nonlocal_labels.

    (gimple_purge_dead_abnormal_call_edges): Likewise.

    (stmt_starts_bb_p): Make setjmp-like abnormal control flow

    receivers start a basic-block.



    * gcc.c-torture/execute/pr56982.c: New testcase.



Added:

    trunk/gcc/testsuite/gcc.c-torture/execute/pr56982.c

Modified:

    trunk/gcc/ChangeLog

    trunk/gcc/builtins.def

    trunk/gcc/gimplify.c

    trunk/gcc/testsuite/ChangeLog

    trunk/gcc/tree-cfg.c

Reply via email to