g++ ICE in fix_lexical_addr
Mark Mitchell
mark@codesourcery.com
Sat Feb 26 21:28:00 GMT 2000
Thanks. Fixed with this patch.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
2000-02-26 Mark Mitchell <mark@codesourcery.com>
* semantics.c (simplify_aggr_init_exprs_p): Don't walk into
types.
Index: semantics.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/semantics.c,v
retrieving revision 1.127
diff -c -p -r1.127 semantics.c
*** semantics.c 2000/02/27 02:46:57 1.127
--- semantics.c 2000/02/27 05:20:46
*************** simplify_aggr_init_exprs_r (tp, walk_sub
*** 2618,2626 ****
tree call_type;
int copy_from_buffer_p;
- /* Only AGGR_INIT_EXPRs are interesting. */
aggr_init_expr = *tp;
! if (TREE_CODE (aggr_init_expr) != AGGR_INIT_EXPR)
return NULL_TREE;
/* Form an appropriate CALL_EXPR. */
--- 2618,2636 ----
tree call_type;
int copy_from_buffer_p;
aggr_init_expr = *tp;
! /* 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 (aggr_init_expr))
! {
! *walk_subtrees = 0;
! return NULL_TREE;
! }
! /* Only AGGR_INIT_EXPRs are interesting. */
! else if (TREE_CODE (aggr_init_expr) != AGGR_INIT_EXPR)
return NULL_TREE;
/* Form an appropriate CALL_EXPR. */
More information about the Gcc-bugs
mailing list