aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-09-12 14:36:50 -0700
committerRichard Henderson <rth@gcc.gnu.org>2004-09-12 14:36:50 -0700
commit373c0e7f04097a50d480846786894883adbf5e45 (patch)
tree051c6e5b7ae1bdd153f37194a1ba91a1342fe790 /gcc/cp
parent7fac672272cce6ed7e6e8ca9a54116d40f303dd7 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/cp/semantics.c2
-rw-r--r--gcc/cp/typeck.c2
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;
}