public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
@ 2010-11-02 17:10 ` burnus at gcc dot gnu.org
  2010-11-02 22:32 ` burnus at gcc dot gnu.org
                   ` (41 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-02 17:10 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-02 17:10:05 UTC ---
Author: burnus
Date: Tue Nov  2 17:09:58 2010
New Revision: 166205

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166205
Log:
2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/45170
        * array.c (gfc_match_array_constructor): Reject deferred type
        parameter (DTP) in type-spec.
        * decl.c (char_len_param_value, match_char_length,
        gfc_match_char_spec, build_sym, variable_decl,
        enumerator_decl): Support DTP.
        * expr.c (check_inquiry): Fix check due to support for DTP.
        * gfortran.h (gfc_typespec): Add Boolean 'deferred'.
        * misc.c (gfc_clear_ts): Set it to false.
        * match.c (gfc_match_allocate): Support DTP.
        * resolve.c (resolve_allocate_expr): Not-implemented error for
        * DTP.
        (resolve_fl_variable): Add DTP constraint check.
        * trans-decl.c (gfc_trans_deferred_vars): Add not-implemented
        error for DTP.

2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/45170
        * gfortran.dg/deferred_type_param_1.f90: New.
        * gfortran.dg/deferred_type_param_2.f90: New.
        * gfortran.dg/initialization_1.f90: Update dg-errors.
        * gfortran.dg/initialization_9.f90: Update dg-errors.


Added:
    trunk/gcc/testsuite/gfortran.dg/deferred_type_param_1.f90
    trunk/gcc/testsuite/gfortran.dg/deferred_type_param_2.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/array.c
    trunk/gcc/fortran/decl.c
    trunk/gcc/fortran/expr.c
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/match.c
    trunk/gcc/fortran/misc.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/trans-decl.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/allocate_with_typespec_3.f90
    trunk/gcc/testsuite/gfortran.dg/initialization_1.f90
    trunk/gcc/testsuite/gfortran.dg/initialization_9.f90


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
  2010-11-02 17:10 ` [Bug fortran/45170] [F2003] allocatable character lengths burnus at gcc dot gnu.org
@ 2010-11-02 22:32 ` burnus at gcc dot gnu.org
  2011-01-27 22:42 ` burnus at gcc dot gnu.org
                   ` (40 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-11-02 22:32 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |burnus at gcc dot gnu.org

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-02 22:32:26 UTC ---
Parsing patch committed.

TODO: Actual implementation; will probably done as follow up to PR 35810.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
  2010-11-02 17:10 ` [Bug fortran/45170] [F2003] allocatable character lengths burnus at gcc dot gnu.org
  2010-11-02 22:32 ` burnus at gcc dot gnu.org
@ 2011-01-27 22:42 ` burnus at gcc dot gnu.org
  2011-01-28 14:30 ` pault at gcc dot gnu.org
                   ` (39 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2011-01-27 22:42 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-01-27 21:04:27 UTC ---
Submitted patch for deferred-length character strings (only for scalars):
  http://gcc.gnu.org/ml/fortran/2011-01/msg00264.html
Also supports (re)allocate on assignment for scalars (PR 35810).


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2011-01-27 22:42 ` burnus at gcc dot gnu.org
@ 2011-01-28 14:30 ` pault at gcc dot gnu.org
  2011-01-28 15:45 ` burnus at gcc dot gnu.org
                   ` (38 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: pault at gcc dot gnu.org @ 2011-01-28 14:30 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #8 from Paul Thomas <pault at gcc dot gnu.org> 2011-01-28 13:53:25 UTC ---
Author: pault
Date: Fri Jan 28 13:53:19 2011
New Revision: 169356

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169356
Log:
2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
        Tobias Burnus  <burnus@gcc.gnu.org>

    PR fortran/45170
    PR fortran/35810
    PR fortran/47350
    * interface.c (compare_actual_formal): An allocatable or pointer
    deferred length actual is only allowed if the formal argument
    is also deferred length. Clean up whitespace.
    * trans-expr.c (gfc_conv_procedure_call): Pass string length for
    deferred character length formal arguments by reference. Do the
    same for function results.
    (gfc_trans_pointer_assignment): Do not do runtime check of lhs
    and rhs character lengths, if deferred length lhs.  In this case
    set the lhs character length to that of the rhs.
    (gfc_conv_string_parameter): Remove assert that string length is
    an integer type.
    (is_scalar_reallocatable_lhs): New function.
    (alloc_scalar_allocatable_for_assignment): New function.
    (gfc_trans_assignment_1): Call above new function. If the rhs is
    a deferred character length itself, makes ure that the function
    is called before reallocation, so that the length is available.
    (gfc_trans_asssignment): Remove error about assignment to
    deferred length character variables.
    * gfortran.texi : Update entry about (re)allocation on
    assignment.
    * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
    length character variables.
    * module.c (mio_typespec): Transfer deferred characteristic.
    * trans-types.c (gfc_get_function_type): New code to generate
    hidden typelist, so that those character lengths that are
    passed by reference get the right type.
    * resolve.c (resolve_contained_fntype): Supress error for
    deferred character length functions.
    (resolve_function, resolve_fl_procedure) The same.
    (check_symbols): Remove the error that support for
    entity with deferred type parameter is not yet implemented.
    (resolve_fl_derived): The same.
    match.c (alloc_opt_list): Allow MOLD for deferred length object.
    * trans-decl.c (gfc_get_symbol_decl): For deferred character
    length dummies, generate a local variable for string length.
    (create_function_arglist): Hidden length can be a pointer.
    (gfc_trans_deferred_vars): For deferred character length
    results and dummies, assign the string length to the local
    variable from the hidden argument on entry and the other way
    round on exit, as appropriate.

2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
        Tobias Burnus  <burnus@gcc.gnu.org>

    PR fortran/45170
    PR fortran/35810
    PR fortran/47350
    * gfortran.dg/realloc_on_assign_3.f03: New test.
    * gfortran.dg/realloc_on_assign_4.f03: New test.
    * gfortran.dg/realloc_on_assign_5.f90: New test.
    * gfortran.dg/allocatable_function_5.f90: New test.
    * gfortran.dg/allocate_deferred_char_scalar_1.f90: New test.
    * gfortran.dg/deferred_type_param_2.f90: Remove two "not yet
    implemented" dg-errors.


Added:
    trunk/gcc/testsuite/gfortran.dg/allocate_deferred_char_scalar_1.f03
    trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_3.f03
    trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_4.f03
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/gfortran.texi
    trunk/gcc/fortran/interface.c
    trunk/gcc/fortran/match.c
    trunk/gcc/fortran/module.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/trans-decl.c
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/fortran/trans-stmt.c
    trunk/gcc/fortran/trans-types.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/deferred_type_param_2.f90


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2011-01-28 14:30 ` pault at gcc dot gnu.org
@ 2011-01-28 15:45 ` burnus at gcc dot gnu.org
  2011-01-28 20:59 ` tkoenig at gcc dot gnu.org
                   ` (37 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2011-01-28 15:45 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #9 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-01-28 15:35:02 UTC ---
TODO:

- Function result variables which are character(len=:), pointer
  (according to http://gcc.gnu.org/ml/fortran/2011-01/msg00264.html item (v))

- Deferred-length string ARRAYS have still some issues

- Deferred-length string as derived-type COMPONENTS are unimplemented

- PR 47519 is an ICE


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2011-01-28 15:45 ` burnus at gcc dot gnu.org
@ 2011-01-28 20:59 ` tkoenig at gcc dot gnu.org
  2011-01-30 18:17 ` pault at gcc dot gnu.org
                   ` (36 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-01-28 20:59 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.01.28 20:43:16
                 CC|                            |tkoenig at gcc dot gnu.org
         Depends on|                            |47519, 47523
     Ever Confirmed|0                           |1

--- Comment #10 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-01-28 20:43:16 UTC ---
Adding dependencies, confirming.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2011-01-28 20:59 ` tkoenig at gcc dot gnu.org
@ 2011-01-30 18:17 ` pault at gcc dot gnu.org
  2011-02-02 18:09 ` dnovillo at gcc dot gnu.org
                   ` (35 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: pault at gcc dot gnu.org @ 2011-01-30 18:17 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #11 from Paul Thomas <pault at gcc dot gnu.org> 2011-01-30 17:50:06 UTC ---
Author: pault
Date: Sun Jan 30 17:50:01 2011
New Revision: 169413

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169413
Log:
2011-01-30  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/47523
    * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
    expr and is assigned to a deferred character length scalar,
    make sure that the function is called before reallocation,
    so that the length is available. Include procedure pointer
    and procedure pointer component rhs as well.

2011-01-30  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/47523
    * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
    expr and is assigned to a deferred character length scalar,
    make sure that the function is called before reallocation,
    so that the length is available. Include procedure pointer
    and procedure pointer component rhs as well.

    PR fortran/45170
    PR fortran/35810
    PR fortran/47350
    * gfortran.dg/allocatable_function_5.f90: New test not added by
    mistake on 2011-01-28.



Added:
    trunk/gcc/testsuite/gfortran.dg/allocatable_function_5.f90
    trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_5.f03
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2011-01-30 18:17 ` pault at gcc dot gnu.org
@ 2011-02-02 18:09 ` dnovillo at gcc dot gnu.org
  2011-02-02 18:18 ` dnovillo at gcc dot gnu.org
                   ` (34 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: dnovillo at gcc dot gnu.org @ 2011-02-02 18:09 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #12 from Diego Novillo <dnovillo at gcc dot gnu.org> 2011-02-02 17:59:37 UTC ---
Author: dnovillo
Date: Wed Feb  2 17:59:29 2011
New Revision: 169666

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169666
Log:
2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
        Tobias Burnus  <burnus@gcc.gnu.org>

    PR fortran/45170
    PR fortran/35810
    PR fortran/47350
    * interface.c (compare_actual_formal): An allocatable or pointer
    deferred length actual is only allowed if the formal argument
    is also deferred length. Clean up whitespace.
    * trans-expr.c (gfc_conv_procedure_call): Pass string length for
    deferred character length formal arguments by reference. Do the
    same for function results.
    (gfc_trans_pointer_assignment): Do not do runtime check of lhs
    and rhs character lengths, if deferred length lhs.  In this case
    set the lhs character length to that of the rhs.
    (gfc_conv_string_parameter): Remove assert that string length is
    an integer type.
    (is_scalar_reallocatable_lhs): New function.
    (alloc_scalar_allocatable_for_assignment): New function.
    (gfc_trans_assignment_1): Call above new function. If the rhs is
    a deferred character length itself, makes ure that the function
    is called before reallocation, so that the length is available.
    (gfc_trans_asssignment): Remove error about assignment to
    deferred length character variables.
    * gfortran.texi : Update entry about (re)allocation on
    assignment.
    * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
    length character variables.
    * module.c (mio_typespec): Transfer deferred characteristic.
    * trans-types.c (gfc_get_function_type): New code to generate
    hidden typelist, so that those character lengths that are
    passed by reference get the right type.
    * resolve.c (resolve_contained_fntype): Supress error for
    deferred character length functions.
    (resolve_function, resolve_fl_procedure) The same.
    (check_symbols): Remove the error that support for
    entity with deferred type parameter is not yet implemented.
    (resolve_fl_derived): The same.
    match.c (alloc_opt_list): Allow MOLD for deferred length object.
    * trans-decl.c (gfc_get_symbol_decl): For deferred character
    length dummies, generate a local variable for string length.
    (create_function_arglist): Hidden length can be a pointer.
    (gfc_trans_deferred_vars): For deferred character length
    results and dummies, assign the string length to the local
    variable from the hidden argument on entry and the other way
    round on exit, as appropriate.

2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
        Tobias Burnus  <burnus@gcc.gnu.org>

    PR fortran/45170
    PR fortran/35810
    PR fortran/47350
    * gfortran.dg/realloc_on_assign_3.f03: New test.
    * gfortran.dg/realloc_on_assign_4.f03: New test.
    * gfortran.dg/realloc_on_assign_5.f90: New test.
    * gfortran.dg/allocatable_function_5.f90: New test.
    * gfortran.dg/allocate_deferred_char_scalar_1.f90: New test.
    * gfortran.dg/deferred_type_param_2.f90: Remove two "not yet
    implemented" dg-errors.

Added:
   
branches/google/integration/gcc/testsuite/gfortran.dg/allocate_deferred_char_scalar_1.f03
   
branches/google/integration/gcc/testsuite/gfortran.dg/realloc_on_assign_3.f03
   
branches/google/integration/gcc/testsuite/gfortran.dg/realloc_on_assign_4.f03
Modified:
    branches/google/integration/gcc/fortran/ChangeLog
    branches/google/integration/gcc/fortran/gfortran.texi
    branches/google/integration/gcc/fortran/interface.c
    branches/google/integration/gcc/fortran/match.c
    branches/google/integration/gcc/fortran/module.c
    branches/google/integration/gcc/fortran/resolve.c
    branches/google/integration/gcc/fortran/trans-decl.c
    branches/google/integration/gcc/fortran/trans-expr.c
    branches/google/integration/gcc/fortran/trans-stmt.c
    branches/google/integration/gcc/fortran/trans-types.c
    branches/google/integration/gcc/testsuite/ChangeLog
   
branches/google/integration/gcc/testsuite/gfortran.dg/deferred_type_param_2.f90


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2011-02-02 18:09 ` dnovillo at gcc dot gnu.org
@ 2011-02-02 18:18 ` dnovillo at gcc dot gnu.org
  2011-07-12 13:51 ` boschmann at tp1 dot physik.uni-siegen.de
                   ` (33 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: dnovillo at gcc dot gnu.org @ 2011-02-02 18:18 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #13 from Diego Novillo <dnovillo at gcc dot gnu.org> 2011-02-02 18:04:35 UTC ---
Author: dnovillo
Date: Wed Feb  2 18:04:21 2011
New Revision: 169697

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169697
Log:
2011-01-30  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/47523
    * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
    expr and is assigned to a deferred character length scalar,
    make sure that the function is called before reallocation,
    so that the length is available. Include procedure pointer
    and procedure pointer component rhs as well.

2011-01-30  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/47523
    * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
    expr and is assigned to a deferred character length scalar,
    make sure that the function is called before reallocation,
    so that the length is available. Include procedure pointer
    and procedure pointer component rhs as well.

    PR fortran/45170
    PR fortran/35810
    PR fortran/47350
    * gfortran.dg/allocatable_function_5.f90: New test not added by
    mistake on 2011-01-28.

Added:
   
branches/google/integration/gcc/testsuite/gfortran.dg/allocatable_function_5.f90
   
branches/google/integration/gcc/testsuite/gfortran.dg/realloc_on_assign_5.f03
Modified:
    branches/google/integration/gcc/fortran/ChangeLog
    branches/google/integration/gcc/fortran/trans-expr.c
    branches/google/integration/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2011-02-02 18:18 ` dnovillo at gcc dot gnu.org
@ 2011-07-12 13:51 ` boschmann at tp1 dot physik.uni-siegen.de
  2011-07-12 14:20 ` sgk at troutmask dot apl.washington.edu
                   ` (32 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: boschmann at tp1 dot physik.uni-siegen.de @ 2011-07-12 13:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |boschmann at tp1 dot
                   |                            |physik.uni-siegen.de

--- Comment #14 from Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> 2011-07-12 13:51:08 UTC ---
I've got one more item for the TODO list:

character(:),allocatable::string
integer::length
length=5
allocate(character(len=length)::string)

This is not yet accepted by gfortran. Is there any other way to allocate
"string" without a primitive like string=repeat(" ",10)?


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2011-07-12 13:51 ` boschmann at tp1 dot physik.uni-siegen.de
@ 2011-07-12 14:20 ` sgk at troutmask dot apl.washington.edu
  2011-07-12 14:46 ` burnus at gcc dot gnu.org
                   ` (31 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2011-07-12 14:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #15 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2011-07-12 14:19:24 UTC ---
On Tue, Jul 12, 2011 at 01:51:40PM +0000, boschmann at tp1 dot
physik.uni-siegen.de wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
> 
> Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |boschmann at tp1 dot
>                    |                            |physik.uni-siegen.de
> 
> --- Comment #14 from Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> 2011-07-12 13:51:08 UTC ---
> I've got one more item for the TODO list:
> 
> character(:),allocatable::string
> integer::length
> length=5
> allocate(character(len=length)::string)
> 
> This is not yet accepted by gfortran. Is there any other way to allocate
> "string" without a primitive like string=repeat(" ",10)?

laptop:kargl[212] gfc4x -o z g.f90
laptop:kargl[213] ./z
 yes!!
laptop:kargl[214] cat g.f90
character(:),allocatable::string
string='yes!!'
print *, string
end


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (10 preceding siblings ...)
  2011-07-12 14:20 ` sgk at troutmask dot apl.washington.edu
@ 2011-07-12 14:46 ` burnus at gcc dot gnu.org
  2011-07-12 15:01 ` boschmann at tp1 dot physik.uni-siegen.de
                   ` (30 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2011-07-12 14:46 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #16 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-07-12 14:44:11 UTC ---
(In reply to comment #14)
> allocate(character(len=length)::string)
> 
> This is not yet accepted by gfortran. Is there any other way to allocate
> "string" without a primitive like string=repeat(" ",10)?

  Error: Variable 'length' cannot appear in the expression at (1)

That comes from the specification expression check. The check is called via
  resolve_types -> resolve_charlen -> resolve_index_expr ->
gfc_specification_expr

Thus, one needs to somehow distinguish length specifications in the ALLOCATE
from those in a type-declaration statement; I think one needs to modify both
resolve_index_expr (not calling gfc_specification_expr) and resolve_charlen
(not setting specification_expr).


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (11 preceding siblings ...)
  2011-07-12 14:46 ` burnus at gcc dot gnu.org
@ 2011-07-12 15:01 ` boschmann at tp1 dot physik.uni-siegen.de
  2011-07-15 14:04 ` burnus at gcc dot gnu.org
                   ` (29 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: boschmann at tp1 dot physik.uni-siegen.de @ 2011-07-12 15:01 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #17 from Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> 2011-07-12 15:00:22 UTC ---
This sounds like there is still a lot of work to do in this character issue.
Has anyone ever managed to allocate such strings dynamically? In 

(In reply to comment #15)
> character(:),allocatable::string
> string='yes!!'
> print *, string
> end

the length is constant so you could use character(5)::string. That's not what I
mean, I would like to have something like this:

PROGRAM helloworld
  character(:),allocatable::string
  real::rnd
  call random_number(rnd)
  call hello(ceiling(11*rnd),string)
  print *,string
contains
  subroutine hello (n,string)
    character(:),allocatable,intent(out)::string
    integer,intent(in)::n
    character(10)::helloworld="hello world"
    string=helloworld(:n)
  end subroutine hello
end PROGRAM helloworld

I guess that's not yet possible with gfortran.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (12 preceding siblings ...)
  2011-07-12 15:01 ` boschmann at tp1 dot physik.uni-siegen.de
@ 2011-07-15 14:04 ` burnus at gcc dot gnu.org
  2011-08-09  2:11 ` damian at rouson dot net
                   ` (28 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2011-07-15 14:04 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #18 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-07-15 14:02:45 UTC ---
(In reply to comment #16)
>   Error: Variable 'length' cannot appear in the expression at (1)
> That comes from the specification expression check.

If one removes the check, it works, i.e. it is just a resolution (resolve.c)
problem and not a code generation one.


(In reply to comment #17)
>   subroutine hello (n,string)
>     character(:),allocatable,intent(out)::string
>     integer,intent(in)::n
>     string=helloworld(:n)

That one seems to be a very subtle issue, depending on the modifications (e.g.
allocate(character(len=)) instead of alloc on assignment), one might get the
correct string length - or even the correct string. Looking at the (original)
dump, the string length should be always correct, hence, I think we generate a
slightly wrong tree. The next step would be to look at -fdump-tree-optimized
and then work backwards.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (13 preceding siblings ...)
  2011-07-15 14:04 ` burnus at gcc dot gnu.org
@ 2011-08-09  2:11 ` damian at rouson dot net
  2011-08-09  3:48 ` kargl at gcc dot gnu.org
                   ` (27 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: damian at rouson dot net @ 2011-08-09  2:11 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Damian Rouson <damian at rouson dot net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |damian at rouson dot net

--- Comment #19 from Damian Rouson <damian at rouson dot net> 2011-08-09 02:09:56 UTC ---
Comment 9 states that gfortran does not yet support "function result variables
which are character(len=:), pointer".  Presumably this also implies a lack of
support for replacing these with allocatable, deferred-length character
variables.  I'm adding the case below because it produces an ICE with gfortran
4.6.1:

$ cat speaker.F90
module speaker_class
  type speaker
  contains
    procedure :: speak
  end type
contains
  function speak(this)
    class(speaker) ,intent(in) :: this
    character(:) ,allocatable :: speak
  end function
  subroutine say_something(somebody)
    class(speaker) :: somebody
    print *,somebody%speak()
  end subroutine
end module

$ gfortran -c speaker.F90
speaker.F90: In function 'say_something':
speaker.F90:13:0: internal compiler error: in fold_convert_loc, at
fold-const.c:1906
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

$ gfortran --version
GNU Fortran (GCC) 4.6.1 20110325 (prerelease)
Copyright (C) 2011 Free Software Foundation, Inc.

GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (14 preceding siblings ...)
  2011-08-09  2:11 ` damian at rouson dot net
@ 2011-08-09  3:48 ` kargl at gcc dot gnu.org
  2011-08-09  4:28 ` damian at rouson dot net
                   ` (26 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: kargl at gcc dot gnu.org @ 2011-08-09  3:48 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #20 from kargl at gcc dot gnu.org 2011-08-09 03:48:11 UTC ---
(In reply to comment #19)
> Comment 9 states that gfortran does not yet support "function result variables
> which are character(len=:), pointer".  Presumably this also implies a lack of
> support for replacing these with allocatable, deferred-length character
> variables.  I'm adding the case below because it produces an ICE with gfortran
> 4.6.1:
> 
> $ cat speaker.F90
> module speaker_class
>   type speaker
>   contains
>     procedure :: speak
>   end type
> contains
>   function speak(this)
>     class(speaker) ,intent(in) :: this
>     character(:) ,allocatable :: speak
>   end function
>   subroutine say_something(somebody)
>     class(speaker) :: somebody
>     print *,somebody%speak()
>   end subroutine
> end module
> 
> $ gfortran -c speaker.F90
> speaker.F90: In function 'say_something':
> speaker.F90:13:0: internal compiler error: in fold_convert_loc, at
> fold-const.c:1906
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.

It works fine if you remove all the extraneous garbage in 
your example.

laptop:kargl[217] cat foo.f90
module speaker_class
contains
  function speak()
    character(:) , allocatable :: speak
    speak = 'foo'
  end function
end module

program foo
  use speaker_class
  print *, speak()
end program foo
laptop:kargl[218] gfc4x -o z foo.f90 && ./z
 foo


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (15 preceding siblings ...)
  2011-08-09  3:48 ` kargl at gcc dot gnu.org
@ 2011-08-09  4:28 ` damian at rouson dot net
  2011-08-09  5:09 ` sgk at troutmask dot apl.washington.edu
                   ` (25 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: damian at rouson dot net @ 2011-08-09  4:28 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #21 from Damian Rouson <damian at rouson dot net> 2011-08-09 04:26:45 UTC ---
Thanks but even the version with the "extraneous garbage" was reduced relative
to what I really want to do (which includes making the speaker type abstract
and the speak type-bound procedure deferred with a specified abstract
interface) so having the reduced case doesn't help much. 

Regardless, hopefully you'll agree that an ICE is a compiler bug.  I guess the
question is whether it is another example of Bug 45170 or should be submitted
as a separate bug.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (16 preceding siblings ...)
  2011-08-09  4:28 ` damian at rouson dot net
@ 2011-08-09  5:09 ` sgk at troutmask dot apl.washington.edu
  2011-08-26 11:10 ` boschmann at tp1 dot physik.uni-siegen.de
                   ` (24 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2011-08-09  5:09 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #22 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2011-08-09 05:09:13 UTC ---
On Tue, Aug 09, 2011 at 04:26:49AM +0000, damian at rouson dot net wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
> 
> --- Comment #21 from Damian Rouson <damian at rouson dot net> 2011-08-09 04:26:45 UTC ---
> Thanks but even the version with the "extraneous garbage" was reduced relative
> to what I really want to do (which includes making the speaker type abstract
> and the speak type-bound procedure deferred with a specified abstract
> interface) so having the reduced case doesn't help much. 
> 
> Regardless, hopefully you'll agree that an ICE is a compiler bug.  I guess the
> question is whether it is another example of Bug 45170 or should be submitted
> as a separate bug.

Yes, it is bug.  It is not as drastic as you stated.
Clearly, I demonstrated that a function can have a deferred
type parameter as a result.  The problem appears to be an
OOP issue.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (17 preceding siblings ...)
  2011-08-09  5:09 ` sgk at troutmask dot apl.washington.edu
@ 2011-08-26 11:10 ` boschmann at tp1 dot physik.uni-siegen.de
  2011-08-26 19:36 ` sgk at troutmask dot apl.washington.edu
                   ` (23 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: boschmann at tp1 dot physik.uni-siegen.de @ 2011-08-26 11:10 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #23 from Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> 2011-08-26 10:05:32 UTC ---
Is there any chance that gfortran 4.7.0 will support allocatable character
lengths? Using fortran for text processing has been painful since time
immemorial and this little feature is a huge leap indeed.

Unlike iso_varying_string you can combine allocatable characters to all other
built-in features of fortran like print *,string. Additionally, as soon as it
is allocated, you can assign it to a non-allocatable dummy characters so no one
but the supplier has to care about whether it is dynamic or not. That's why it
is much more powerful than iso_varying_string.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (18 preceding siblings ...)
  2011-08-26 11:10 ` boschmann at tp1 dot physik.uni-siegen.de
@ 2011-08-26 19:36 ` sgk at troutmask dot apl.washington.edu
  2011-08-26 20:19 ` boschmann at tp1 dot physik.uni-siegen.de
                   ` (22 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2011-08-26 19:36 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #24 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2011-08-26 17:23:11 UTC ---
On Fri, Aug 26, 2011 at 10:05:32AM +0000, boschmann at tp1 dot
physik.uni-siegen.de wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
> 
> --- Comment #23 from Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> 2011-08-26 10:05:32 UTC ---
> Is there any chance that gfortran 4.7.0 will support allocatable character
> lengths?

As you know, gfortran already has support for a deferred
type parameter.  Yes, there are some bugs, but no one
has had time to track down the few remaining issues.
Looking at your code in comment #17, one can easily find
a trivial change to make it work.


PROGRAM helloworld
  character(:),allocatable::string
  real::rnd
  do i = 1, 10
     call random_number(rnd)
     call hello(ceiling(11*rnd),string)
     print '(A,1X,I0)', '>' // string // '<', len(string)
  end do
contains
  subroutine hello (n,string)
    character(:),allocatable,intent(out)::string
    integer,intent(in)::n
    character(10)::helloworld="hello world"
!    string=helloworld(:n)                      ! Does not work.
!    string=(helloworld(:n))                    ! Works.
!    allocate(string, source=helloworld(:n))    ! Does not work.
     allocate(string, source=(helloworld(:n)))  ! Works.
  end subroutine hello
end PROGRAM helloworld

troutmask:sgk[217] gfc4x -o z foo.f90 && ./z
>hello worl< 11
>hello w< 7
>hello worl< 11
>hello wor< 9
>hello< 5
>hello < 6
>h< 1
>h< 1
>hell< 4
>hell< 4

Your code in comment #14 is (I believe) invalid, and gfortran
is issuing the correct error message.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (19 preceding siblings ...)
  2011-08-26 19:36 ` sgk at troutmask dot apl.washington.edu
@ 2011-08-26 20:19 ` boschmann at tp1 dot physik.uni-siegen.de
  2011-08-29  7:20 ` burnus at gcc dot gnu.org
                   ` (21 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: boschmann at tp1 dot physik.uni-siegen.de @ 2011-08-26 20:19 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #25 from Hans-Werner Boschmann <boschmann at tp1 dot physik.uni-siegen.de> 2011-08-26 19:44:10 UTC ---
(In reply to comment #24)

> Looking at your code in comment #17, one can easily find
> a trivial change to make it work.

Thank you, I was not aware of this. I was always wondering why you said that it
is partly working, because I could not at all allocate characters. But knowing
this, I should be able to fix my code.

> Yes, there are some bugs, but no one
> has had time to track down the few remaining issues.

Sure, please don't feel pushed. It is in fact a miracle that you keep up with
companies like intel or portland without comparable funding. Great job!


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (20 preceding siblings ...)
  2011-08-26 20:19 ` boschmann at tp1 dot physik.uni-siegen.de
@ 2011-08-29  7:20 ` burnus at gcc dot gnu.org
  2011-08-29 16:32 ` sgk at troutmask dot apl.washington.edu
                   ` (20 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2011-08-29  7:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #26 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-08-29 06:47:41 UTC ---
(In reply to comment #24)
> Your code in comment #14 is (I believe) invalid, and gfortran
> is issuing the correct error message.

I get:
  Error: Variable 'length' cannot appear in the expression at (1)

However, I believe that 
  allocate(character(len=length)::string)
is valid.

One has (F2008):
  R626 allocate-stmt is ALLOCATE ( [ type-spec :: ] allocation-list
                                   [, alloc-opt-list ] )
with
  R402 type-spec  is  intrinsic-type-spec  or  derived-type-spec
with 
  R404 intrinsic-type-spec  is  [...]
                            or  CHARACTER [ char-selector ]
with
  R420 char-selector  is  length-selector [or ...]
with
  R421 length-selector is ( [ LEN = ] type-param-value )  [or ...]

Thus, I do not see any syntax problems; I also couldn't find any constraint or
other reason which renders the code in comment #14 invalid.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (21 preceding siblings ...)
  2011-08-29  7:20 ` burnus at gcc dot gnu.org
@ 2011-08-29 16:32 ` sgk at troutmask dot apl.washington.edu
  2011-08-29 17:23 ` burnus at gcc dot gnu.org
                   ` (19 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2011-08-29 16:32 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #27 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2011-08-29 16:22:16 UTC ---
On Mon, Aug 29, 2011 at 06:47:41AM +0000, burnus at gcc dot gnu.org wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
> 
> --- Comment #26 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-08-29 06:47:41 UTC ---
> (In reply to comment #24)
> > Your code in comment #14 is (I believe) invalid, and gfortran
> > is issuing the correct error message.
> 
> I get:
>   Error: Variable 'length' cannot appear in the expression at (1)
> 
> However, I believe that 
>   allocate(character(len=length)::string)
> is valid.
> 
> One has (F2008):
>   R626 allocate-stmt is ALLOCATE ( [ type-spec :: ] allocation-list
>                                    [, alloc-opt-list ] )
> with
>   R402 type-spec  is  intrinsic-type-spec  or  derived-type-spec
> with 
>   R404 intrinsic-type-spec  is  [...]
>                             or  CHARACTER [ char-selector ]
> with
>   R420 char-selector  is  length-selector [or ...]
> with
>   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.

7.1.7

An initialization expression is an expression with limitations that
make it suitable for use as a kind type parameter, initializer, or
named constant.  It is an expression in which each operation is
intrinsic, and each primary is

      (1)   A constant or subobject of a constant,


character(:),allocatable::string
integer::length
length=5
allocate(character(len=length)::string)

length is not a constant.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (22 preceding siblings ...)
  2011-08-29 16:32 ` sgk at troutmask dot apl.washington.edu
@ 2011-08-29 17:23 ` burnus at gcc dot gnu.org
  2011-08-30 15:41 ` kargl at gcc dot gnu.org
                   ` (18 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2011-08-29 17:23 UTC (permalink / raw)
  To: gcc-bugs

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


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (23 preceding siblings ...)
  2011-08-29 17:23 ` burnus at gcc dot gnu.org
@ 2011-08-30 15:41 ` kargl at gcc dot gnu.org
  2011-08-30 19:01 ` damian at rouson dot net
                   ` (17 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: kargl at gcc dot gnu.org @ 2011-08-30 15:41 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #29 from kargl at gcc dot gnu.org 2011-08-30 15:34:06 UTC ---
Author: kargl
Date: Tue Aug 30 15:34:01 2011
New Revision: 178329

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=178329
Log:
2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/45170
    * trans-stmt.c (gfc_trans_allocate): Evaluate the substring.

2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/45170
    * gfortran.dg/allocate_with_source_2.f90: New test

Added:
    trunk/gcc/testsuite/gfortran.dg/allocate_with_source_2.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/trans-stmt.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (24 preceding siblings ...)
  2011-08-30 15:41 ` kargl at gcc dot gnu.org
@ 2011-08-30 19:01 ` damian at rouson dot net
  2011-08-30 19:45 ` sgk at troutmask dot apl.washington.edu
                   ` (16 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: damian at rouson dot net @ 2011-08-30 19:01 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #30 from Damian Rouson <damian at rouson dot net> 2011-08-30 18:46:42 UTC ---
Just out curiosity, what's the reason for the "real::rnd" line in the
helloworld testcase?  I don't see "rnd" used anywhere.

Damian

On Tue, Aug 30, 2011 at 8:34 AM, kargl at gcc dot gnu.org <
gcc-bugzilla@gcc.gnu.org> wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
>
> --- Comment #29 from kargl at gcc dot gnu.org 2011-08-30 15:34:06 UTC ---
> Author: kargl
> Date: Tue Aug 30 15:34:01 2011
> New Revision: 178329
>
> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=178329
> Log:
> 2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>
>
>    PR fortran/45170
>    * trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
>
> 2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>
>
>    PR fortran/45170
>    * gfortran.dg/allocate_with_source_2.f90: New test
>
> Added:
>    trunk/gcc/testsuite/gfortran.dg/allocate_with_source_2.f90
> Modified:
>    trunk/gcc/fortran/ChangeLog
>    trunk/gcc/fortran/trans-stmt.c
>    trunk/gcc/testsuite/ChangeLog
>
> --
> Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug.
>


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (25 preceding siblings ...)
  2011-08-30 19:01 ` damian at rouson dot net
@ 2011-08-30 19:45 ` sgk at troutmask dot apl.washington.edu
  2012-05-13 10:56 ` burnus at gcc dot gnu.org
                   ` (15 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: sgk at troutmask dot apl.washington.edu @ 2011-08-30 19:45 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #31 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2011-08-30 19:31:25 UTC ---
On Tue, Aug 30, 2011 at 06:46:42PM +0000, damian at rouson dot net wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
> 
> --- Comment #30 from Damian Rouson <damian at rouson dot net> 2011-08-30 18:46:42 UTC ---
> Just out curiosity, what's the reason for the "real::rnd" line in the
> helloworld testcase?  I don't see "rnd" used anywhere.
> 
> Damian
> 

When I changed the testcase from the PR into something
suitable for the testsuite, I missed removing the
declaration.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (26 preceding siblings ...)
  2011-08-30 19:45 ` sgk at troutmask dot apl.washington.edu
@ 2012-05-13 10:56 ` burnus at gcc dot gnu.org
  2012-05-13 13:10 ` burnus at gcc dot gnu.org
                   ` (14 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-05-13 10:56 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #32 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-13 10:52:37 UTC ---
Author: burnus
Date: Sun May 13 10:52:32 2012
New Revision: 187436

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187436
Log:
2012-05-13  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/52158
        PR fortran/45170
        PR fortran/49430
        * resolve.c (resolve_fl_derived0): Deferred character length 
        procedure components are supported.
        * trans-expr.c (gfc_conv_procedure_call): Handle TBP with 
        deferred-length results.
        (gfc_string_to_single_character): Add a new check to prevent
        NULL read.
        (gfc_conv_procedure_call): Remove unuseful checks on 
        symbol's attributes. Add new checks to prevent NULL read on
        string length. 

2012-05-13  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>

        PR fortran/45170
        * gfortran.dg/deferred_type_param_3.f90: New.
        * gfortran.dg/deferred_type_proc_pointer_1.f90: New.
        * gfortran.dg/deferred_type_proc_pointer_2.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/deferred_type_param_3.f90
    trunk/gcc/testsuite/gfortran.dg/deferred_type_proc_pointer_1.f90
    trunk/gcc/testsuite/gfortran.dg/deferred_type_proc_pointer_2.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (27 preceding siblings ...)
  2012-05-13 10:56 ` burnus at gcc dot gnu.org
@ 2012-05-13 13:10 ` burnus at gcc dot gnu.org
  2012-05-15 13:09 ` burnus at gcc dot gnu.org
                   ` (13 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-05-13 13:10 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #33 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-13 12:45:46 UTC ---
STATUS: Many issues have been fixed, but several still exist.

- See list of bugs which depend on/block this PR.

Regarding the bugs reported/mentioned directly in this PR:

- Comment 0 seems to be fixed except for the array assignment, cf. PR 50221.
- Comment 14 is the same as PR 51055
  (A simple REPEAT, which is suggested as alternative in comment 14 does not
   yet work, cf. submitted patch and PR 49110 and PR 51055)
- Comment 24: The first example (first commented "Does not work." line) still
  fails. Warning: It seems to use an an endless loop in which it keeps
  allocating memory!

As comment 9 mentioned:
- Deferred-length string ARRAYS have still some issues; for instance PR 50221.
- Deferred-length strings as derived-type COMPONENTS are unimplemented
  That's PR 51976.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (28 preceding siblings ...)
  2012-05-13 13:10 ` burnus at gcc dot gnu.org
@ 2012-05-15 13:09 ` burnus at gcc dot gnu.org
  2012-05-23 20:39 ` burnus at gcc dot gnu.org
                   ` (12 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-05-15 13:09 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #34 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-15 12:54:36 UTC ---
(In reply to comment #24)
>      call hello(ceiling(11*rnd),string)

That should be floor or "10" - otherwise, it can give "11" which is too large.
(Or and better: Change the "10" to "11" below then "hello worl(d)" fits into
the string.)


>     integer,intent(in)::n
>     character(10)::helloworld="hello world"
>     string=helloworld(:n)                      ! Does not work.

Interestingly, it works if one does not use "n" as argument but sets it in the
procedure. One then gets code like:
  *string =  ... __builtin_malloc ( ... MAX_EXPR <n, 0> )

However, if "n" is passed as dummy argument, one has:
  integer(kind=4) D.1865;
  *string = ... __builtin_malloc ( ... MAX_EXPR <D.1865, 0> )
  D.1865 = *nnnn;

Or in other words: The order is wrong.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (29 preceding siblings ...)
  2012-05-15 13:09 ` burnus at gcc dot gnu.org
@ 2012-05-23 20:39 ` burnus at gcc dot gnu.org
  2012-05-23 20:48 ` burnus at gcc dot gnu.org
                   ` (11 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-05-23 20:39 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #35 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-23 20:35:42 UTC ---
Author: burnus
Date: Wed May 23 20:35:30 2012
New Revision: 187811

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187811
Log:
2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51055
        PR fortran/45170
        * match.c (gfc_match_allocate): Set length_from_typespec
        for characters.
        * resolve.c (resolve_charlen): If set, don't check whether
        the len is a specification expression.

2012-05-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51055
        PR fortran/45170
        * gfortran.dg/allocate_with_typespec_6.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/allocate_with_typespec_6.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/match.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (30 preceding siblings ...)
  2012-05-23 20:39 ` burnus at gcc dot gnu.org
@ 2012-05-23 20:48 ` burnus at gcc dot gnu.org
  2012-05-24 13:39 ` burnus at gcc dot gnu.org
                   ` (10 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-05-23 20:48 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #36 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-23 20:45:29 UTC ---
(In reply to comment #35)
> New Revision: 187811

That patch fixed comment 14.

REMAINING issues:

- comment 24 first "Does not work.", see also comment 34
- PRs which block this PR, some of them are also mentioned in
  this PR (cf. comment 33).


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (31 preceding siblings ...)
  2012-05-23 20:48 ` burnus at gcc dot gnu.org
@ 2012-05-24 13:39 ` burnus at gcc dot gnu.org
  2012-06-16 18:14 ` burnus at gcc dot gnu.org
                   ` (9 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-05-24 13:39 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #37 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-24 13:08:33 UTC ---
(In reply to comment #36)
> REMAINING issues:
> - comment 24 first "Does not work.", see also comment 34

One has in gfc_trans_assignment_1:

   string_length = gfc_evaluate_now (rse.string_length, &rse.pre);
   ...
   if (...)
     gfc_add_block_to_block (&block, &rse.pre);

where the (...) evaluates to false. (The call in gfc_trans_scalar_assign then
works on rse->string_length, which seems seems to handle the
gfc_add_block_to_block for rse.pre.)

The following works, but I am not sure about the condition; I have the feeling
that it could be handled unconditionally.

--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -6893,3 +6897,2 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr *
expr2, bool init_flag,
   bool scalar_to_array;
-  bool def_clen_func;
   tree string_length;
@@ -7012,9 +7015,4 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr *
expr2, bool init_flag,
      parameter available to the caller; gfortran saves it in the .mod files.
*/
-  def_clen_func = (expr2->expr_type == EXPR_FUNCTION
-                  || expr2->expr_type == EXPR_COMPCALL
-                  || expr2->expr_type == EXPR_PPC);
-  if (gfc_option.flag_realloc_lhs
-       && expr2->ts.type == BT_CHARACTER
-       && (def_clen_func || expr2->expr_type == EXPR_OP)
-       && expr1->ts.deferred)
+  if (gfc_option.flag_realloc_lhs && expr2->ts.type == BT_CHARACTER
+      && expr1->ts.deferred)
     gfc_add_block_to_block (&block, &rse.pre);


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (32 preceding siblings ...)
  2012-05-24 13:39 ` burnus at gcc dot gnu.org
@ 2012-06-16 18:14 ` burnus at gcc dot gnu.org
  2012-06-16 18:29 ` burnus at gcc dot gnu.org
                   ` (8 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-06-16 18:14 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #38 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-06-16 18:13:42 UTC ---
Author: burnus
Date: Sat Jun 16 18:13:38 2012
New Revision: 188692

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=188692
Log:
2012-06-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53642
        PR fortran/45170
        * frontend-passes.c (optimize_assignment): Don't remove RHS's
        trim when assigning to a deferred-length string.
        * trans-expr.c (gfc_trans_assignment_1): Ensure that the RHS string
        length is evaluated before the deferred-length LHS is reallocated.

2012-06-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53642
        PR fortran/45170
        * gfortran.dg/deferred_type_param_8.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/deferred_type_param_8.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/frontend-passes.c
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (33 preceding siblings ...)
  2012-06-16 18:14 ` burnus at gcc dot gnu.org
@ 2012-06-16 18:29 ` burnus at gcc dot gnu.org
  2013-02-05 16:34 ` infinity.probability at gmail dot com
                   ` (7 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2012-06-16 18:29 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #39 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-06-16 18:28:31 UTC ---
The issue of comment 24 is now fixed (comment 38). Thus, only the following
issues remain, which are all covered in other bugs (see dependency list):

* PR 50221: Allocatable string length fails with array assignment
  Cf. also comment 0 and comment 9

* PR 47674: gfortran.dg/realloc_on_assign_5.f03:
  Segfault at run time for deferred (allocatable) string length
  Related to missing dependency handling for substrings like: "a = a(1:4)"

* PR 49954: ICE assigning concat expression to an array deferred-length string
  (realloc on assignment)
  Related to the problem that expr->ts.u.cl->backend_decl points to the wrong
  result.

* PR 51976: [F2003] Support deferred-length character components of derived
  types (allocatable string length)
  Similar to the previous issue: expr->ts.u.cl->backend_decl is wrong, one
needs
  to convert it to dt_var._hidden_length. (Well, the "_hidden_length" is
  also not yet implemented in the trunk.)
  (Cf. also comment 9)


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (34 preceding siblings ...)
  2012-06-16 18:29 ` burnus at gcc dot gnu.org
@ 2013-02-05 16:34 ` infinity.probability at gmail dot com
  2013-02-05 16:37 ` infinity.probability at gmail dot com
                   ` (6 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: infinity.probability at gmail dot com @ 2013-02-05 16:34 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

I M <infinity.probability at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |infinity.probability at
                   |                            |gmail dot com

--- Comment #40 from I M <infinity.probability at gmail dot com> 2013-02-05 16:33:13 UTC ---
With version 4.7.2 this bug still exists. Is there any timeline to fix it?


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (35 preceding siblings ...)
  2013-02-05 16:34 ` infinity.probability at gmail dot com
@ 2013-02-05 16:37 ` infinity.probability at gmail dot com
  2013-02-05 20:23 ` janus at gcc dot gnu.org
                   ` (5 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: infinity.probability at gmail dot com @ 2013-02-05 16:37 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #41 from I M <infinity.probability at gmail dot com> 2013-02-05 16:36:41 UTC ---
With version 4.7.2 this bug still exists. Is there any timeline to fix it? 

The following code 

module thing
    implicit none
    character(len=:), allocatable :: array_of_chars(:)
    contains

      subroutine allocatestuff()
        implicit none
        integer :: length_names = 15
        integer :: number_arrays  = 5

        allocate(character(15) :: array_of_chars(number_arrays))
        !allocate(character(length_names) :: array_of_chars(number_arrays))

      end subroutine allocatestuff

end module thing

program test1
implicit none


      call allocatestuff()

end program test1

Both allocates triggers the bug. If the same code is in the main program and
not in a module the first allocate works, but the second doesn't.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (36 preceding siblings ...)
  2013-02-05 16:37 ` infinity.probability at gmail dot com
@ 2013-02-05 20:23 ` janus at gcc dot gnu.org
  2013-06-13  7:23 ` burnus at gcc dot gnu.org
                   ` (4 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: janus at gcc dot gnu.org @ 2013-02-05 20:23 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #42 from janus at gcc dot gnu.org 2013-02-05 20:22:25 UTC ---
(In reply to comment #41)
> With version 4.7.2 this bug still exists. Is there any timeline to fix it? 
> 
> [...]
> 
> Both allocates triggers the bug. If the same code is in the main program and
> not in a module the first allocate works, but the second doesn't.

While your test case ICEs with 4.6 and 4.7 (internal compiler error: in
lhd_set_decl_assembler_name, at langhooks.c:158), it works with the current
trunk version (if you add "use thing"), so it should also work with the
upcoming release 4.8.0.

Note that there are still some known bugs, though (cf. comment 39).


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (37 preceding siblings ...)
  2013-02-05 20:23 ` janus at gcc dot gnu.org
@ 2013-06-13  7:23 ` burnus at gcc dot gnu.org
  2013-06-14  7:43 ` burnus at gcc dot gnu.org
                   ` (3 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-06-13  7:23 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Bug 45170 depends on bug 57596, which changed state.

Bug 57596 Summary: Wrong code for allocatable deferred-length strings
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57596

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|INVALID                     |---


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (38 preceding siblings ...)
  2013-06-13  7:23 ` burnus at gcc dot gnu.org
@ 2013-06-14  7:43 ` burnus at gcc dot gnu.org
  2013-09-02 11:26 ` dominiq at lps dot ens.fr
                   ` (2 subsequent siblings)
  42 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-06-14  7:43 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Bug 45170 depends on bug 57596, which changed state.

Bug 57596 Summary: Wrong code for allocatable deferred-length strings
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57596

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |FIXED


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (39 preceding siblings ...)
  2013-06-14  7:43 ` burnus at gcc dot gnu.org
@ 2013-09-02 11:26 ` dominiq at lps dot ens.fr
  2015-06-04  9:28 ` tkoenig at gcc dot gnu.org
  2015-09-03 21:18 ` dominiq at lps dot ens.fr
  42 siblings, 0 replies; 46+ messages in thread
From: dominiq at lps dot ens.fr @ 2013-09-02 11:26 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Dominique d'Humieres <dominiq at lps dot ens.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|---                         |FIXED

--- Comment #44 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
> Per comment #39, it seems that this PR could be closed as FIXED.

Closing as fixed. If there are issues not covered by comment #39, please open a
new report.


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (40 preceding siblings ...)
  2013-09-02 11:26 ` dominiq at lps dot ens.fr
@ 2015-06-04  9:28 ` tkoenig at gcc dot gnu.org
  2015-09-03 21:18 ` dominiq at lps dot ens.fr
  42 siblings, 0 replies; 46+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2015-06-04  9:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
Bug 45170 depends on bug 47674, which changed state.

Bug 47674 Summary: gfortran.dg/realloc_on_assign_5.f03: Segfault at run time for deferred (allocatable) string length
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47674

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
       [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
                   ` (41 preceding siblings ...)
  2015-06-04  9:28 ` tkoenig at gcc dot gnu.org
@ 2015-09-03 21:18 ` dominiq at lps dot ens.fr
  42 siblings, 0 replies; 46+ messages in thread
From: dominiq at lps dot ens.fr @ 2015-09-03 21:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
Bug 45170 depends on bug 51976, which changed state.

Bug 51976 Summary: [F2003] Support deferred-length character components of derived types (allocatable string length)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51976

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
  2010-08-03  1:55 [Bug fortran/45170] New: suspected bug in error generated by allocatable character array clerman at fuse dot net
  2010-08-03  5:43 ` [Bug fortran/45170] [F2003] allocatable character lengths burnus at gcc dot gnu dot org
  2010-08-03 10:25 ` clerman at fuse dot net
@ 2010-08-15 18:46 ` kargl at gcc dot gnu dot org
  2 siblings, 0 replies; 46+ messages in thread
From: kargl at gcc dot gnu dot org @ 2010-08-15 18:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from kargl at gcc dot gnu dot org  2010-08-15 18:46 -------
A patch to do the parsing and some error checking has
been posted at

http://gcc.gnu.org/ml/fortran/2010-08/msg00181.html

It is not a complete implementation of the feature
and requires much additional work.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
  2010-08-03  1:55 [Bug fortran/45170] New: suspected bug in error generated by allocatable character array clerman at fuse dot net
  2010-08-03  5:43 ` [Bug fortran/45170] [F2003] allocatable character lengths burnus at gcc dot gnu dot org
@ 2010-08-03 10:25 ` clerman at fuse dot net
  2010-08-15 18:46 ` kargl at gcc dot gnu dot org
  2 siblings, 0 replies; 46+ messages in thread
From: clerman at fuse dot net @ 2010-08-03 10:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from clerman at fuse dot net  2010-08-03 10:24 -------
Subject: Re:  [F2003] allocatable character lengths

  Thank you very much for replying so promptly. I looked at the status page I
didn't read it carefully enough.

Regards,

Norm Clerman

---- burnus at gcc dot gnu dot org <gcc-bugzilla@gcc.gnu.org> wrote: 

=============


------- Comment #2 from burnus at gcc dot gnu dot org  2010-08-03 05:43 -------
By the way, gfortran's Fortran 2003 implementation status can be found at
http://gcc.gnu.org/wiki/Fortran2003Status


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |20585
              nThis|                            |
            Summary|suspected bug in error      |[F2003] allocatable
                   |generated by allocatable    |character lengths
                   |character array             |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170


^ permalink raw reply	[flat|nested] 46+ messages in thread

* [Bug fortran/45170] [F2003] allocatable character lengths
  2010-08-03  1:55 [Bug fortran/45170] New: suspected bug in error generated by allocatable character array clerman at fuse dot net
@ 2010-08-03  5:43 ` burnus at gcc dot gnu dot org
  2010-08-03 10:25 ` clerman at fuse dot net
  2010-08-15 18:46 ` kargl at gcc dot gnu dot org
  2 siblings, 0 replies; 46+ messages in thread
From: burnus at gcc dot gnu dot org @ 2010-08-03  5:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from burnus at gcc dot gnu dot org  2010-08-03 05:43 -------
By the way, gfortran's Fortran 2003 implementation status can be found at
http://gcc.gnu.org/wiki/Fortran2003Status


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |20585
              nThis|                            |
            Summary|suspected bug in error      |[F2003] allocatable
                   |generated by allocatable    |character lengths
                   |character array             |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170


^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2015-09-03 21:18 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-45170-4@http.gcc.gnu.org/bugzilla/>
2010-11-02 17:10 ` [Bug fortran/45170] [F2003] allocatable character lengths burnus at gcc dot gnu.org
2010-11-02 22:32 ` burnus at gcc dot gnu.org
2011-01-27 22:42 ` burnus at gcc dot gnu.org
2011-01-28 14:30 ` pault at gcc dot gnu.org
2011-01-28 15:45 ` burnus at gcc dot gnu.org
2011-01-28 20:59 ` tkoenig at gcc dot gnu.org
2011-01-30 18:17 ` pault at gcc dot gnu.org
2011-02-02 18:09 ` dnovillo at gcc dot gnu.org
2011-02-02 18:18 ` dnovillo at gcc dot gnu.org
2011-07-12 13:51 ` boschmann at tp1 dot physik.uni-siegen.de
2011-07-12 14:20 ` sgk at troutmask dot apl.washington.edu
2011-07-12 14:46 ` burnus at gcc dot gnu.org
2011-07-12 15:01 ` boschmann at tp1 dot physik.uni-siegen.de
2011-07-15 14:04 ` burnus at gcc dot gnu.org
2011-08-09  2:11 ` damian at rouson dot net
2011-08-09  3:48 ` kargl at gcc dot gnu.org
2011-08-09  4:28 ` damian at rouson dot net
2011-08-09  5:09 ` sgk at troutmask dot apl.washington.edu
2011-08-26 11:10 ` boschmann at tp1 dot physik.uni-siegen.de
2011-08-26 19:36 ` sgk at troutmask dot apl.washington.edu
2011-08-26 20:19 ` boschmann at tp1 dot physik.uni-siegen.de
2011-08-29  7:20 ` burnus at gcc dot gnu.org
2011-08-29 16:32 ` sgk at troutmask dot apl.washington.edu
2011-08-29 17:23 ` burnus at gcc dot gnu.org
2011-08-30 15:41 ` kargl at gcc dot gnu.org
2011-08-30 19:01 ` damian at rouson dot net
2011-08-30 19:45 ` sgk at troutmask dot apl.washington.edu
2012-05-13 10:56 ` burnus at gcc dot gnu.org
2012-05-13 13:10 ` burnus at gcc dot gnu.org
2012-05-15 13:09 ` burnus at gcc dot gnu.org
2012-05-23 20:39 ` burnus at gcc dot gnu.org
2012-05-23 20:48 ` burnus at gcc dot gnu.org
2012-05-24 13:39 ` burnus at gcc dot gnu.org
2012-06-16 18:14 ` burnus at gcc dot gnu.org
2012-06-16 18:29 ` burnus at gcc dot gnu.org
2013-02-05 16:34 ` infinity.probability at gmail dot com
2013-02-05 16:37 ` infinity.probability at gmail dot com
2013-02-05 20:23 ` janus at gcc dot gnu.org
2013-06-13  7:23 ` burnus at gcc dot gnu.org
2013-06-14  7:43 ` burnus at gcc dot gnu.org
2013-09-02 11:26 ` dominiq at lps dot ens.fr
2015-06-04  9:28 ` tkoenig at gcc dot gnu.org
2015-09-03 21:18 ` dominiq at lps dot ens.fr
2010-08-03  1:55 [Bug fortran/45170] New: suspected bug in error generated by allocatable character array clerman at fuse dot net
2010-08-03  5:43 ` [Bug fortran/45170] [F2003] allocatable character lengths burnus at gcc dot gnu dot org
2010-08-03 10:25 ` clerman at fuse dot net
2010-08-15 18:46 ` kargl at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).