aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-semantics.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2003-07-08 19:44:17 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2003-07-08 19:44:17 +0000
commit516574425b935981dcdae07ff0e3be6b5946bf04 (patch)
tree20adccaaafcd98efc427f57bfdc819e4ec959c91 /gcc/c-semantics.c
parent7e6dc3581ceb8a56bd80bcf7e47507d1902b19f7 (diff)
downloadgcc-516574425b935981dcdae07ff0e3be6b5946bf04.zip
gcc-516574425b935981dcdae07ff0e3be6b5946bf04.tar.gz
gcc-516574425b935981dcdae07ff0e3be6b5946bf04.tar.bz2
re PR c/1687 (Exponential time behavior with -O -finline-functions (compile time regression from 3.2, 3.3))
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. From-SVN: r69097
Diffstat (limited to 'gcc/c-semantics.c')
-rw-r--r--gcc/c-semantics.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c
index 1481e1d..9ecfc96 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;
}