diff options
author | Steve Ellcey <sje@cup.hp.com> | 2007-01-30 17:49:24 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2007-01-30 17:49:24 +0000 |
commit | 884d2e6b2826a08b3b547d2d8fadebfe5a157c4f (patch) | |
tree | a5668f085b62ff9f0655a4623f6e84ede7037e82 /gcc | |
parent | d6c716bdd833e82292eb1f5d42f1fbf45063a132 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 3 | ||||
-rw-r--r-- | gcc/fortran/trans-types.c | 3 |
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; |