diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2006-08-21 16:54:57 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2006-08-21 16:54:57 -0400 |
commit | c6c7698dfd268ad41c9ca00a8c49333d09c51e20 (patch) | |
tree | 38fad6e6bb826a12c58767da330650091c1f7cd9 /gcc/java/java-gimplify.c | |
parent | 63b263936ed5ce953ec313d858cb20a1dcb7ebfa (diff) | |
download | gcc-c6c7698dfd268ad41c9ca00a8c49333d09c51e20.zip gcc-c6c7698dfd268ad41c9ca00a8c49333d09c51e20.tar.gz gcc-c6c7698dfd268ad41c9ca00a8c49333d09c51e20.tar.bz2 |
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
Diffstat (limited to 'gcc/java/java-gimplify.c')
0 files changed, 0 insertions, 0 deletions