re PR fortran/30432 ([4.1 only] gfortran.dg/c_by_val_1.f fails on ia64-*-*, problem...
authorSteve Ellcey <sje@cup.hp.com>
Tue, 30 Jan 2007 17:49:24 +0000 (17:49 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Tue, 30 Jan 2007 17:49:24 +0000 (17:49 +0000)
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.

From-SVN: r121347

gcc/fortran/ChangeLog
gcc/fortran/trans-decl.c
gcc/fortran/trans-types.c

index 1ff3a60428699b576b8e6cac55e59dbffd187f5b..33ebbf65ab2140f487b5bb0d2172af20f7bc6bb2 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 3028c8fa422dda4af0e41eb602f776e8349205f3..3b52b9d830bba17975a3f0d93c2e4eb8eeac4626 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 d0775f7711154922bb09fcea6d626b9e5e93b222..16121891a39656cd5b26017f35f98a604943ee20 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;