This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/45170] [F2003] allocatable character lengths
- From: "burnus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 29 Aug 2011 16:34:34 +0000
- Subject: [Bug fortran/45170] [F2003] allocatable character lengths
- Auto-submitted: auto-generated
- References: <bug-45170-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
--- Comment #28 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-08-29 16:34:34 UTC ---
(In reply to comment #27)
> > R421 length-selector is ( [ LEN = ] type-param-value ) [or ...]
>
> From F2003:
>
> C402 (R402) The type-param-value for a kind type parameter shall be
> an initialization expression.
[...]
> allocate(character(len=length)::string)
>
> length is not a constant.
Nor is it a "type-param-value for a *kind* type parameter" (emphasis by me). It
is a "length type parameter":
"1.3.147.12.4 length type parameter type parameter whose value is permitted
to be assumed, deferred, or given by a specification expression"
In your case, it is deferred. Note that type-param-value is simply defined as:
R401 type-param-value is scalar-int-expr or * or :
and
"The values of the deferred type parameters of an object are determined by
successful execution of an ALLOCATE statement (6.7.1), execution of an
intrinsic assignment statement (7.2.1.3), execution of a pointer assignment
statement (7.2.2), or by argument association (12.5.2)."