PR c++/27115
commitc3d09d4da1e9d3d59cf01acc2c4e52c6c764f383
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 Aug 2006 20:54:57 +0000 (21 20:54 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 Aug 2006 20:54:57 +0000 (21 20:54 +0000)
tree38fad6e6bb826a12c58767da330650091c1f7cd9
parent0dc9b1a54fab6cd36d3ef64d1f05c03718fd5172
    PR c++/27115
        * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
        wrapper.  Loop to handle nested wrappers.
        (gimplify_bind_expr): Remove temp parameter.
        (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
        and STATEMENT_LIST on the rhs.
        (gimplify_statement_list): Voidify the STATEMENT_LIST.
        (gimplify_expr): Pass pre_p to gimplify_statement_list.
        (gimplify_target_expr): Remove special BIND_EXPR handling.
        * cp/semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
        just leave the expression as it is.
        (finish_stmt_expr): If the statement-expression has class type,
        wrap it in a TARGET_EXPR.
        * cp/cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
        CLEANUP_POINT_EXPR.
        * cp/except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116311 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/cp-gimplify.c
gcc/cp/except.c
gcc/cp/semantics.c
gcc/gimplify.c
gcc/testsuite/g++.dg/abi/forced-sticky.C [new file with mode: 0644]
gcc/testsuite/g++.dg/abi/forced.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/stmtexpr8.C [new file with mode: 0644]