aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 851f8bb..b5a284a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-11 Ian Lance Taylor <ian@airs.com>
+
+ * tree.c (build_function_type_list): Work correctly if there are
+ no arguments.
+
2005-02-11 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
diff --git a/gcc/tree.c b/gcc/tree.c
index 1865943..3d41e11 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -4538,9 +4538,14 @@ build_function_type_list (tree return_type, ...)
for (args = NULL_TREE; t != NULL_TREE; t = va_arg (p, tree))
args = tree_cons (NULL_TREE, t, args);
- last = args;
- args = nreverse (args);
- TREE_CHAIN (last) = void_list_node;
+ if (args == NULL_TREE)
+ args = void_list_node;
+ else
+ {
+ last = args;
+ args = nreverse (args);
+ TREE_CHAIN (last) = void_list_node;
+ }
args = build_function_type (return_type, args);
va_end (p);