mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
86d7449cc6
commit
1ca99f75ca
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
! { 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
|
Loading…
Reference in New Issue