diff options
author | Richard Henderson <rth@redhat.com> | 2004-09-12 14:36:50 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-09-12 14:36:50 -0700 |
commit | 373c0e7f04097a50d480846786894883adbf5e45 (patch) | |
tree | 051c6e5b7ae1bdd153f37194a1ba91a1342fe790 /gcc/cp | |
parent | 7fac672272cce6ed7e6e8ca9a54116d40f303dd7 (diff) | |
download | gcc-373c0e7f04097a50d480846786894883adbf5e45.zip gcc-373c0e7f04097a50d480846786894883adbf5e45.tar.gz gcc-373c0e7f04097a50d480846786894883adbf5e45.tar.bz2 |
re PR c++/16254 (ICE in lower_stmt, at gimple-low.c:205)
PR c++/16254
* fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
* tree.c, tree.h (has_cleanups): Remove.
cp/
* semantics.c (maybe_cleanup_point_expr): Don't call fold.
* typeck.c (condition_conversion): Likewise.
From-SVN: r87407
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 2 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c8ba24d..37f0811 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-09-12 Richard Henderson <rth@redhat.com> + + PR c++/16254 + * semantics.c (maybe_cleanup_point_expr): Don't call fold. + * typeck.c (condition_conversion): Likewise. + 2004-09-11 Richard Henderson <rth@redhat.com> PR c++/17404 diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index bdf1439..1ea97a0 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -358,7 +358,7 @@ static tree maybe_cleanup_point_expr (tree expr) { if (!processing_template_decl && stmts_are_full_exprs_p ()) - expr = fold (build1 (CLEANUP_POINT_EXPR, TREE_TYPE (expr), expr)); + expr = build1 (CLEANUP_POINT_EXPR, TREE_TYPE (expr), expr); return expr; } diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 77fd20a..2169bad 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -3659,7 +3659,7 @@ condition_conversion (tree expr) if (processing_template_decl) return expr; t = perform_implicit_conversion (boolean_type_node, expr); - t = fold (build1 (CLEANUP_POINT_EXPR, boolean_type_node, t)); + t = build1 (CLEANUP_POINT_EXPR, boolean_type_node, t); return t; } |