summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/c-objc-common.c3
-rw-r--r--gcc/c-semantics.c3
-rw-r--r--gcc/tree-inline.c6
4 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e83cd094cc..886b3b4a6b7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2003-07-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR c/1687
+ * tree-inline.c (find_alloca_call): Use
+ walk_tree_without_duplicates, instead of walk_tree.
+ (find_builtin_longjmp_call): Likewise.
+ * c-objc-common.c (c_cannot_inline_fn): Likewise.
+ * c-semantics.c (find_reachable_label): Likewise.
+
2003-07-08 Jakub Jelinek <jakub@redhat.com>
PR c/11420
diff --git a/gcc/c-objc-common.c b/gcc/c-objc-common.c
index 438b3fba808..e0a99a3ae87 100644
--- a/gcc/c-objc-common.c
+++ b/gcc/c-objc-common.c
@@ -211,7 +211,8 @@ c_cannot_inline_tree_fn (tree *fnp)
return 0;
}
- if (walk_tree (&DECL_SAVED_TREE (fn), inline_forbidden_p, fn, NULL))
+ if (walk_tree_without_duplicates (&DECL_SAVED_TREE (fn),
+ inline_forbidden_p, fn))
goto cannot_inline;
return 0;
diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c
index 1481e1db706..9ecfc96faa2 100644
--- a/gcc/c-semantics.c
+++ b/gcc/c-semantics.c
@@ -924,7 +924,8 @@ static tree
find_reachable_label (tree exp)
{
location_t saved_loc = input_location;
- tree ret = walk_tree (&exp, find_reachable_label_1, NULL, NULL);
+ tree ret = walk_tree_without_duplicates
+ (&exp, find_reachable_label_1, NULL);
input_location = saved_loc;
return ret;
}
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 0d4d7a41098..c41ccea5e83 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -898,7 +898,8 @@ static tree
find_alloca_call (tree exp)
{
location_t saved_loc = input_location;
- tree ret = walk_tree (&exp, find_alloca_call_1, NULL, NULL);
+ tree ret = walk_tree_without_duplicates
+ (&exp, find_alloca_call_1, NULL);
input_location = saved_loc;
return ret;
}
@@ -924,7 +925,8 @@ static tree
find_builtin_longjmp_call (tree exp)
{
location_t saved_loc = input_location;
- tree ret = walk_tree (&exp, find_builtin_longjmp_call_1, NULL, NULL);
+ tree ret = walk_tree_without_duplicates
+ (&exp, find_builtin_longjmp_call_1, NULL);
input_location = saved_loc;
return ret;
}