diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b5730961aed..c3582fcc2b6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2000-10-20 Jason Merrill + + * tree.c (walk_tree): Don't walk into default args. + + * error.c (dump_expr): Use host_integerp. + 2000-10-20 David Edelsohn * typeck2.c (abstract_virtuals_error): Use "because" instead of diff --git a/gcc/cp/error.c b/gcc/cp/error.c index e9837026934..cb27751e34e 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1609,8 +1609,7 @@ dump_expr (t, flags) else { do_int: - if ((unsigned HOST_WIDE_INT) TREE_INT_CST_HIGH (t) - != (TREE_INT_CST_LOW (t) >> (HOST_BITS_PER_WIDE_INT - 1))) + if (! host_integerp (t, 0)) { tree val = t; diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index a1d37c86698..f974067135a 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1388,7 +1388,13 @@ walk_tree (tp, func, data, htab) case FUNCTION_TYPE: WALK_SUBTREE (TREE_TYPE (*tp)); - WALK_SUBTREE (TYPE_ARG_TYPES (*tp)); + { + tree arg = TYPE_ARG_TYPES (*tp); + + /* We never want to walk into default arguments. */ + for (; arg; arg = TREE_CHAIN (arg)) + WALK_SUBTREE (TREE_VALUE (arg)); + } break; case ARRAY_TYPE: