This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/35723] Can't use run-time array element in character declaration
- From: "burnus at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Mar 2008 19:40:15 -0000
- Subject: [Bug fortran/35723] Can't use run-time array element in character declaration
- References: <bug-35723-15620@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from burnus at gcc dot gnu dot org 2008-03-28 19:40 -------
Confirmed.
A simple patch would be the following:
Index: expr.c
===================================================================
--- expr.c (Revision 133693)
+++ expr.c (Arbeitskopie)
@@ -2502,6 +2502,7 @@ check_restricted (gfc_expr *e)
|| sym->attr.use_assoc
|| sym->attr.dummy
|| sym->attr.implied_index
+ || sym->attr.flavor == FL_PARAMETER
|| sym->ns != gfc_current_ns
|| (sym->ns->proc_name != NULL
&& sym->ns->proc_name->attr.flavor == FL_MODULE)
However, this also accepts the following invalid program (note the "i"):
program try_vf0016
call vf0016( 1, 2, 3)
end
SUBROUTINE VF0016(nf1,nf2,nf3)
CHARACTER(LEN=9,KIND=1),DIMENSION(3) , PARAMETER
$ :: TEST_STRINGS =
$ (/' HI','ABC ',' CDEFG '/)
integer :: i = 2
CHARACTER :: TEST_ARRAY
$(LEN_TRIM(ADJUSTL(TEST_STRINGS(i))), ! changing nf1 to 1 fixes it
$ SUM(LEN_TRIM(ADJUSTL(TEST_STRINGS))),
$ LEN_TRIM(ADJUSTL(ADJUSTR(TEST_STRINGS(3)))),
$ SUM(LEN_TRIM(ADJUSTL(ADJUSTR(TEST_STRINGS(NF1:NF3:NF2))))) )
print *, 2, 10, 5, 7
print *, shape (test_array)
end
We therefore need to loop over expr->ref and check_restricted() these
expressions as well. I think that we can throw in another half a dozen checks
as well. ;-)
--
burnus at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |rejects-valid
Last reconfirmed|0000-00-00 00:00:00 |2008-03-28 19:40:15
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35723