OSDN Git Service

PR fortran/30432
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Jan 2007 17:49:24 +0000 (17:49 +0000)
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Jan 2007 17:49:24 +0000 (17:49 +0000)
* 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
gcc/fortran/trans-decl.c
gcc/fortran/trans-types.c

index 1ff3a60..33ebbf6 100644 (file)
@@ -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
index 3028c8f..3b52b9d 100644 (file)
@@ -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;
 }
 
index d0775f7..1612189 100644 (file)
@@ -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;