]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/except.h
re PR middle-end/26084 (ICE (segfault) on C++ OpenMP code)
authorRichard Henderson <rth@redhat.com>
Wed, 22 Mar 2006 12:50:45 +0000 (04:50 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 22 Mar 2006 12:50:45 +0000 (04:50 -0800)
commitfad41cd7d43ffce40a20f11cfbe68da548ef6b79
tree600f6369cacf022589c2e874590e5a90eb2f99e5
parentee51e035d90930ba62d16122a40ffd3188f44c2c
re PR middle-end/26084 (ICE (segfault) on C++ OpenMP code)

        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.

From-SVN: r112283
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