PR middle-end/26084
commit30b822ea3ac49643606cec17d2c5052f5b45780f
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 Mar 2006 12:50:45 +0000 (22 12:50 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 Mar 2006 12:50:45 +0000 (22 12:50 +0000)
tree600f6369cacf022589c2e874590e5a90eb2f99e5
parentf2df240119d5a44567727d18f595f72b8876428e
    PR middle-end/26084
        * except.c (duplicate_eh_regions_0): New.
        (duplicate_eh_region_1): Duplicate the children of the node as
        well as the node itself.  Link them up properly.
        (duplicate_eh_region_2): Merge into ...
        (duplicate_eh_regions): ... here.  Take copy_region argument, and
        copy only a sub-tree if asked.  Simplify copying and fixup.
        (eh_region_outer_p): New.
        * except.h (duplicate_eh_regions): Update decl.
        (eh_region_outer_p): Declare.
        * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
        (lower_omp_master): Likewise.
        (lower_omp_ordered): Likewise.
        * tree-cfg.c (struct move_stmt_d): Add new_label_map.
        (move_stmt_r): Use it to remap labels.  Handle recursion vs
        remap_decls_p properly.
        (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
        (find_outermost_region_in_block): New.
        (new_label_mapper): New.
        (move_sese_region_to_fn): Copy eh information to the new function
        properly.
        * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
        argument.
        * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
        number.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112283 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/except.c
gcc/except.h
gcc/omp-low.c
gcc/tree-cfg.c
gcc/tree-inline.c
gcc/tree-pretty-print.c