[Bug debug/37616] Lines with 'break', 'goto', and 'continue' are not available for debugging.

jakub at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Oct 7 18:51:00 GMT 2008



------- Comment #3 from jakub at gcc dot gnu dot org  2008-10-07 18:50 -------
Subject: Bug 37616

Author: jakub
Date: Tue Oct  7 18:48:40 2008
New Revision: 140948

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140948
Log:
        PR debug/29609
        PR debug/36690
        PR debug/37616
        * basic-block.h (struct edge_def): Add goto_block field.
        * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
        one insn with locus corresponding to edge's goto_locus if !optimize.
        * profile.c (branch_prob): Copy edge's goto_block.
        * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
        emitted jumps.
        (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
        locator in between the merged basic blocks if !optimize and needed.
        * cfgexpand.c (expand_gimple_cond): Convert goto_block and
        goto_locus into RTL locator.  For unconditional jump use that
        locator for the jump insn.
        (expand_gimple_cond): Convert goto_block and goto_locus into
        RTL locator for all remaining edges.  For unconditional jump
        use that locator for the jump insn.
        * cfgcleanup.c (try_forward_edges): Avoid the optimization if
        there is more than one edge or insn locator along the forwarding
        edges and !optimize.  If there is just one, set e->goto_locus.
        * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
        edge's goto_block.
        (move_block_to_fn): Adjust edge's goto_block.

        * gcc.dg/debug/pr29609-1.c: New test.
        * gcc.dg/debug/pr29609-2.c: New test.
        * gcc.dg/debug/pr36690-1.c: New test.
        * gcc.dg/debug/pr36690-2.c: New test.
        * gcc.dg/debug/pr36690-3.c: New test.
        * gcc.dg/debug/pr37616.c: New test.
        * gcc.dg/debug/dwarf2/pr29609-1.c: New test.
        * gcc.dg/debug/dwarf2/pr29609-2.c: New test.
        * gcc.dg/debug/dwarf2/pr36690-1.c: New test.
        * gcc.dg/debug/dwarf2/pr36690-2.c: New test.
        * gcc.dg/debug/dwarf2/pr36690-3.c: New test.
        * gcc.dg/debug/dwarf2/pr37616.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-1.c
    trunk/gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-2.c
    trunk/gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-1.c
    trunk/gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-2.c
    trunk/gcc/testsuite/gcc.dg/debug/dwarf2/pr36690-3.c
    trunk/gcc/testsuite/gcc.dg/debug/dwarf2/pr37616.c
    trunk/gcc/testsuite/gcc.dg/debug/pr29609-1.c
    trunk/gcc/testsuite/gcc.dg/debug/pr29609-2.c
    trunk/gcc/testsuite/gcc.dg/debug/pr36690-1.c
    trunk/gcc/testsuite/gcc.dg/debug/pr36690-2.c
    trunk/gcc/testsuite/gcc.dg/debug/pr36690-3.c
    trunk/gcc/testsuite/gcc.dg/debug/pr37616.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/basic-block.h
    trunk/gcc/cfgcleanup.c
    trunk/gcc/cfgexpand.c
    trunk/gcc/cfglayout.c
    trunk/gcc/cfgrtl.c
    trunk/gcc/profile.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-cfg.c


-- 


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



More information about the Gcc-bugs mailing list