From ebe27ea21381488db5d74c107c9703386024081f Mon Sep 17 00:00:00 2001 From: sje Date: Tue, 30 Jan 2007 17:49:24 +0000 Subject: [PATCH] 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 --- gcc/fortran/ChangeLog | 7 +++++++ gcc/fortran/trans-decl.c | 3 ++- gcc/fortran/trans-types.c | 3 ++- 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 + + 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 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; -- 2.11.0