re PR fortran/22273 (problem to declare a character variable link to an intent(out) object)

2005-10-16  Erik Edelmann  <erik.edelmann@iki.fi>
fortran/
	PR 22273
	* expr.c (check_inquiry): Add "len" to inquiry_function.
testsuite/
	PR fortran/22273
	* gfortran.dg/spec_expr_2.f90: New.

From-SVN: r105460
This commit is contained in:
Erik Edelmann 2005-10-16 16:59:36 +03:00 committed by Tobias Schlüter
parent a9f7c5705b
commit c2b27658fe
4 changed files with 21 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2005-10-16 Erik Edelmann <erik.edelmann@iki.fi>
PR 22273
* expr.c (check_inquiry): Add "len" to inquiry_function.
2005-10-14 Jakub Jelinek <jakub@redhat.com> 2005-10-14 Jakub Jelinek <jakub@redhat.com>
* primary.c (match_boz_constant): Add missing break after gfc_error. * primary.c (match_boz_constant): Add missing break after gfc_error.

View File

@ -1355,7 +1355,7 @@ check_inquiry (gfc_expr * e)
/* FIXME: This should be moved into the intrinsic definitions, /* FIXME: This should be moved into the intrinsic definitions,
to eliminate this ugly hack. */ to eliminate this ugly hack. */
static const char * const inquiry_function[] = { static const char * const inquiry_function[] = {
"digits", "epsilon", "huge", "kind", "maxexponent", "minexponent", "digits", "epsilon", "huge", "kind", "len", "maxexponent", "minexponent",
"precision", "radix", "range", "tiny", "bit_size", "size", "shape", "precision", "radix", "range", "tiny", "bit_size", "size", "shape",
"lbound", "ubound", NULL "lbound", "ubound", NULL
}; };
@ -1376,10 +1376,9 @@ check_inquiry (gfc_expr * e)
if (e == NULL || e->expr_type != EXPR_VARIABLE) if (e == NULL || e->expr_type != EXPR_VARIABLE)
return FAILURE; return FAILURE;
/* At this point we have a numeric inquiry function with a variable /* At this point we have an inquiry function with a variable argument. The
argument. The type of the variable might be undefined, but we type of the variable might be undefined, but we need it now, because the
need it now, because the arguments of these functions are allowed arguments of these functions are allowed to be undefined. */
to be undefined. */
if (e->ts.type == BT_UNKNOWN) if (e->ts.type == BT_UNKNOWN)
{ {

View File

@ -1,3 +1,8 @@
2005-10-16 Erik Edelmann <erik.edelmann@iki.fi>
PR fortran/22273
* gfortran.dg/spec_expr_2.f90: New.
2005-10-16 Hans-Peter Nilsson <hp@axis.com> 2005-10-16 Hans-Peter Nilsson <hp@axis.com>
* g++.dg/debug/debug3.C, g++.dg/ext/visibility/noPLT.C, * g++.dg/debug/debug3.C, g++.dg/ext/visibility/noPLT.C,

View File

@ -0,0 +1,7 @@
! { dg-do compile }
! PR 22273: Allow INTENT(OUT) dummy:s as arguments to LEN() in specification
! expr:s
subroutine lecligne (ligne)
character(len=*), intent(out) :: ligne
character(len=len(ligne)) :: comment
end subroutine lecligne