This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/45170] [F2003] allocatable character lengths


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)."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]