Commit 1ca99f75 by Tobias Burnus Committed by Tobias Burnus

re PR fortran/47042 (ICE with character pointer in function)

2011-01-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47042
        * resolve.c (resolve_fl_procedure): Reject stmt functions
        with pointer/allocatable attribute.

2011-01-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47042
        * gfortran.dg/stmt_func_1.f90: New.

From-SVN: r169415
parent 86d7449c
2011-01-31 Tobias Burnus <burnus@net-b.de>
PR fortran/47042
* resolve.c (resolve_fl_procedure): Reject stmt functions
with pointer/allocatable attribute.
2011-01-31 Tobias Burnus <burnus@net-b.de>
PR fortran/47042
* interface.c (gfc_procedure_use): Add explicit interface check for
pointer/allocatable functions.
......
......@@ -10231,6 +10231,14 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag)
return FAILURE;
}
if (sym->attr.proc == PROC_ST_FUNCTION
&& (sym->attr.allocatable || sym->attr.pointer))
{
gfc_error ("Statement function '%s' at %L may not have pointer or "
"allocatable attribute", sym->name, &sym->declared_at);
return FAILURE;
}
/* 5.1.1.5 of the Standard: A function name declared with an asterisk
char-len-param shall not be array-valued, pointer-valued, recursive
or pure. ....snip... A character value of * may only be used in the
......
2011-01-31 Tobias Burnus <burnus@net-b.de>
PR fortran/47042
* gfortran.dg/stmt_func_1.f90: New.
2011-01-31 Tobias Burnus <burnus@net-b.de>
PR fortran/47042
* gfortran.dg/interface_34.f90: New.
2011-01-30 Paul Thomas <pault@gcc.gnu.org>
......
! { dg-compile }
! { dg-options "" }
!
! PR fortran/47542
!
integer, target, save :: tgt = 77
integer, pointer ::ptr_stmt ! { dg-error "Statement function .ptr_stmt. at .1. may not have pointer or allocatable attribute" }
integer, allocatable :: alloc_stmt ! { dg-error "Statement function .alloc_stmt. at .1. may not have pointer or allocatable attribute" }
ptr_stmt() = tgt
alloc_stmt() = 78
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment