aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2007-01-30 17:49:24 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2007-01-30 17:49:24 +0000
commit884d2e6b2826a08b3b547d2d8fadebfe5a157c4f (patch)
treea5668f085b62ff9f0655a4623f6e84ede7037e82
parentd6c716bdd833e82292eb1f5d42f1fbf45063a132 (diff)
downloadgcc-884d2e6b2826a08b3b547d2d8fadebfe5a157c4f.zip
gcc-884d2e6b2826a08b3b547d2d8fadebfe5a157c4f.tar.gz
gcc-884d2e6b2826a08b3b547d2d8fadebfe5a157c4f.tar.bz2
re PR fortran/30432 ([4.1 only] gfortran.dg/c_by_val_1.f fails on ia64-*-*, problem with %VAL)
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
-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 1ff3a60..33ebbf6 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 3028c8f..3b52b9d 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 d0775f7..1612189 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;