aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2000-10-20 17:26:26 -0400
committerJason Merrill <jason@gcc.gnu.org>2000-10-20 17:26:26 -0400
commitba523395f170c2a6ebdf373b8bf0a9d82664a36b (patch)
tree7649273d55096f94e7a838d7e4d9f769a1077b9e /gcc
parentac758f9643ee4d3afc14c291dcbbe3ba265257eb (diff)
downloadgcc-ba523395f170c2a6ebdf373b8bf0a9d82664a36b.zip
gcc-ba523395f170c2a6ebdf373b8bf0a9d82664a36b.tar.gz
gcc-ba523395f170c2a6ebdf373b8bf0a9d82664a36b.tar.bz2
tree.c (walk_tree): Don't walk into default args.
* tree.c (walk_tree): Don't walk into default args. * error.c (dump_expr): Use host_integerp. From-SVN: r36984
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/error.c3
-rw-r--r--gcc/cp/tree.c8
3 files changed, 14 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b573096..c3582fc 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2000-10-20 Jason Merrill <jason@redhat.com>
+
+ * tree.c (walk_tree): Don't walk into default args.
+
+ * error.c (dump_expr): Use host_integerp.
+
2000-10-20 David Edelsohn <edelsohn@gnu.org>
* typeck2.c (abstract_virtuals_error): Use "because" instead of
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index e983702..cb27751 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 a1d37c8..f974067 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: