------- Comment #6 from jason at gcc dot gnu dot org 2006-08-21 20:55 ------- Subject: Bug 27115
Author: jason Date: Mon Aug 21 20:54:57 2006 New Revision: 116311 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116311 Log: 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. Added: trunk/gcc/testsuite/g++.dg/abi/forced-sticky.C trunk/gcc/testsuite/g++.dg/abi/forced.C trunk/gcc/testsuite/g++.dg/ext/stmtexpr8.C Modified: trunk/gcc/ChangeLog trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-gimplify.c trunk/gcc/cp/except.c trunk/gcc/cp/semantics.c trunk/gcc/gimplify.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27115