-
- Downloads
re PR c++/27115 (ICE in cp_expr_size or miscompilation with statement...
re PR c++/27115 (ICE in cp_expr_size or miscompilation with statement expressions and constructors (and ?: )) 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. From-SVN: r116311
Showing
- gcc/ChangeLog 12 additions, 0 deletionsgcc/ChangeLog
- gcc/cp/ChangeLog 29 additions, 18 deletionsgcc/cp/ChangeLog
- gcc/cp/cp-gimplify.c 2 additions, 5 deletionsgcc/cp/cp-gimplify.c
- gcc/cp/except.c 1 addition, 1 deletiongcc/cp/except.c
- gcc/cp/semantics.c 37 additions, 59 deletionsgcc/cp/semantics.c
- gcc/gimplify.c 81 additions, 65 deletionsgcc/gimplify.c
- gcc/testsuite/g++.dg/abi/forced-sticky.C 62 additions, 0 deletionsgcc/testsuite/g++.dg/abi/forced-sticky.C
- gcc/testsuite/g++.dg/abi/forced.C 25 additions, 0 deletionsgcc/testsuite/g++.dg/abi/forced.C
- gcc/testsuite/g++.dg/ext/stmtexpr8.C 28 additions, 0 deletionsgcc/testsuite/g++.dg/ext/stmtexpr8.C
Loading
Please register or sign in to comment