aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2005-06-04 00:06:22 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2005-06-04 00:06:22 +0000
commit7fa3585cd41976ad1523212e8779214a8ed112ae (patch)
tree5b966a2b3c740ada392c1cf904888f103f8e45b3
parent789246d71aa4607e71ce1a87c2e044b5944e22ac (diff)
downloadgcc-7fa3585cd41976ad1523212e8779214a8ed112ae.zip
gcc-7fa3585cd41976ad1523212e8779214a8ed112ae.tar.gz
gcc-7fa3585cd41976ad1523212e8779214a8ed112ae.tar.bz2
c-parser.c (c_parser_parms_declarator): Don't use chainon().
* c-parser.c (c_parser_parms_declarator): Don't use chainon(). (c_parser_expr_list): Don't use chainon(). From-SVN: r100567
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/c-parser.c13
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fbdd7b1..82db934 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -5,6 +5,9 @@
2005-06-03 Geoffrey Keating <geoffk@apple.com>
+ * c-parser.c (c_parser_parms_declarator): Don't use chainon().
+ (c_parser_expr_list): Don't use chainon().
+
* config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
when -isysroot passed.
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index d0eec8d..1207e66 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -2355,12 +2355,13 @@ c_parser_parms_declarator (c_parser *parser, bool id_list_ok, tree attrs)
&& c_parser_next_token_is (parser, CPP_NAME)
&& c_parser_peek_token (parser)->id_kind == C_ID_ID)
{
- tree list = NULL_TREE;
+ tree list = NULL_TREE, *nextp = &list;
while (c_parser_next_token_is (parser, CPP_NAME)
&& c_parser_peek_token (parser)->id_kind == C_ID_ID)
{
- list = chainon (list, build_tree_list (NULL_TREE,
- c_parser_peek_token (parser)->value));
+ *nextp = build_tree_list (NULL_TREE,
+ c_parser_peek_token (parser)->value);
+ nextp = & TREE_CHAIN (*nextp);
c_parser_consume_token (parser);
if (c_parser_next_token_is_not (parser, CPP_COMMA))
break;
@@ -5294,14 +5295,14 @@ static tree
c_parser_expr_list (c_parser *parser)
{
struct c_expr expr;
- tree ret;
+ tree ret, cur;
expr = c_parser_expr_no_commas (parser, NULL);
- ret = build_tree_list (NULL_TREE, expr.value);
+ ret = cur = build_tree_list (NULL_TREE, expr.value);
while (c_parser_next_token_is (parser, CPP_COMMA))
{
c_parser_consume_token (parser);
expr = c_parser_expr_no_commas (parser, NULL);
- ret = chainon (ret, build_tree_list (NULL_TREE, expr.value));
+ cur = TREE_CHAIN (cur) = build_tree_list (NULL_TREE, expr.value);
}
return ret;
}