summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/expr.c
diff options
context:
space:
mode:
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2005-10-17 20:52:37 +0000
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2005-10-17 20:52:37 +0000
commitea13b9b7b59a9df6daf09a199be68e6947aa5a41 (patch)
tree69e1371af15ca815b604fa39a051f202ee0a4764 /gcc/fortran/expr.c
parent08511dc1e556f24d1f715bd503cc9a76342e183f (diff)
downloadppe42-gcc-ea13b9b7b59a9df6daf09a199be68e6947aa5a41.tar.gz
ppe42-gcc-ea13b9b7b59a9df6daf09a199be68e6947aa5a41.zip
2005-10-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/23446 * gfortran.h: Primitive for gfc_is_formal_arg. * resolve.c(gfc_is_formal_arg): New function to signal across several function calls that formal argument lists are being processed. (resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg. *expr.c(check_restricted): Add check, via gfc_is_formal_arg, if symbol is part of an formal argument declaration. PR fortran/21459 * decl.c (add_init_expr_to_sym): Make a new character length for each variable, when the expression is NULL and link to cl_list. PR fortran/20866 * match.c (recursive_stmt_fcn): New function that tests if a statement function resurses through itself or other other statement functions. (gfc_match_st_function): Call recursive_stmt_fcn to check if this is recursive and to raise error if so. PR fortran/20849 PR fortran/20853 * resolve.c (resolve_symbol): Errors for assumed size arrays with default initializer and for external objects with an initializer. PR fortran/20837 * decl.c (match_attr_spec): Prevent PUBLIC from being used outside a module. 2005-10-17 Paul Thomas <pault@gcc.gnu.org> PR fortran/23446 * gfortran.dg/host_dummy_index_1.f90: New test. PR fortran/21459 gfortran.dg/automatic_char_len_2.f90: New test. PR fortran/20866 gfortran.dg/recursive_statement_functions.f90: New test. PR fortran/20853 gfortran.dg/assumed_size_dt_dummy.f90: New test. PR fortran/20849 gfortran.dg/external_initializer.f90: New test. PR fortran/20837 non_module_public.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105518 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r--gcc/fortran/expr.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 16d35c4edb0..ebfd8486a13 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -1673,12 +1673,16 @@ check_restricted (gfc_expr * e)
break;
}
+ /* gfc_is_formal_arg broadcasts that a formal argument list is being processed
+ in resolve.c(resolve_formal_arglist). This is done so that host associated
+ dummy array indices are accepted (PR23446). */
if (sym->attr.in_common
|| sym->attr.use_assoc
|| sym->attr.dummy
|| sym->ns != gfc_current_ns
|| (sym->ns->proc_name != NULL
- && sym->ns->proc_name->attr.flavor == FL_MODULE))
+ && sym->ns->proc_name->attr.flavor == FL_MODULE)
+ || gfc_is_formal_arg ())
{
t = SUCCESS;
break;
OpenPOWER on IntegriCloud