summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/semantics.c34
2 files changed, 6 insertions, 34 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3d30c15819d..24891d62f66 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2008-10-21 Richard Guenther <rguenther@suse.de>
+
+ * semantics.c (simplify_aggr_init_exprs_r): Remove.
+ (expand_or_defer_fn): Do not walk the function body to
+ simplify aggr_init_exprs.
+
2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/37004
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 040a9b10c35..664f36d4437 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -54,7 +54,6 @@ along with GCC; see the file COPYING3. If not see
degenerate form of parsing. */
static tree maybe_convert_cond (tree);
-static tree simplify_aggr_init_exprs_r (tree *, int *, void *);
static tree finalize_nrv_r (tree *, int *, void *);
@@ -3056,34 +3055,6 @@ finish_offsetof (tree expr)
return fold_offsetof (expr, NULL_TREE);
}
-/* Called from expand_body via walk_tree. Replace all AGGR_INIT_EXPRs
- with equivalent CALL_EXPRs. */
-
-static tree
-simplify_aggr_init_exprs_r (tree* tp,
- int* walk_subtrees,
- void* data ATTRIBUTE_UNUSED)
-{
- /* We don't need to walk into types; there's nothing in a type that
- needs simplification. (And, furthermore, there are places we
- actively don't want to go. For example, we don't want to wander
- into the default arguments for a FUNCTION_DECL that appears in a
- CALL_EXPR.) */
- if (TYPE_P (*tp))
- {
- *walk_subtrees = 0;
- return NULL_TREE;
- }
- /* Only AGGR_INIT_EXPRs are interesting. */
- else if (TREE_CODE (*tp) != AGGR_INIT_EXPR)
- return NULL_TREE;
-
- simplify_aggr_init_expr (tp);
-
- /* Keep iterating. */
- return NULL_TREE;
-}
-
/* Replace the AGGR_INIT_EXPR at *TP with an equivalent CALL_EXPR. This
function is broken out from the above for the benefit of the tree-ssa
project. */
@@ -3206,11 +3177,6 @@ expand_or_defer_fn (tree fn)
gcc_assert (gimple_body (fn));
- /* Replace AGGR_INIT_EXPRs with appropriate CALL_EXPRs. */
- cp_walk_tree_without_duplicates (&DECL_SAVED_TREE (fn),
- simplify_aggr_init_exprs_r,
- NULL);
-
/* If this is a constructor or destructor body, we have to clone
it. */
if (maybe_clone_body (fn))
OpenPOWER on IntegriCloud