summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-30 17:49:24 +0000
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-30 17:49:24 +0000
commitebe27ea21381488db5d74c107c9703386024081f (patch)
treea5668f085b62ff9f0655a4623f6e84ede7037e82
parent5773ee5ef797889f07e7c45908fa87e413fe9d85 (diff)
downloadgcc-ebe27ea21381488db5d74c107c9703386024081f.tar.gz
PR fortran/30432
* trans-types.c (gfc_get_function_type): Do not add void_type_node to empty arg list. * trans-decl.c (create_function_arglist): Change assert. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121347 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/trans-decl.c3
-rw-r--r--gcc/fortran/trans-types.c3
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 1ff3a604286..33ebbf65ab2 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2007-01-30 Steve Ellcey <sje@cup.hp.com>
+
+ PR fortran/30432
+ * trans-types.c (gfc_get_function_type): Do not add void_type_node
+ to empty arg list.
+ * trans-decl.c (create_function_arglist): Change assert.
+
2007-01-29 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30554
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 3028c8fa422..3b52b9d830b 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1512,7 +1512,8 @@ create_function_arglist (gfc_symbol * sym)
/* Add the hidden string length parameters. */
arglist = chainon (arglist, hidden_arglist);
- gcc_assert (TREE_VALUE (hidden_typelist) == void_type_node);
+ gcc_assert (hidden_typelist == NULL_TREE
+ || TREE_VALUE (hidden_typelist) == void_type_node);
DECL_ARGUMENTS (fndecl) = arglist;
}
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index d0775f77111..16121891a39 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -1768,7 +1768,8 @@ gfc_get_function_type (gfc_symbol * sym)
while (nstr--)
typelist = gfc_chainon_list (typelist, gfc_charlen_type_node);
- typelist = gfc_chainon_list (typelist, void_type_node);
+ if (typelist)
+ typelist = gfc_chainon_list (typelist, void_type_node);
if (alternate_return)
type = integer_type_node;