public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/28771]  New: gfortran accepts invalid variable definition
@ 2006-08-18 11:39 martin at mpa-garching dot mpg dot de
  2006-08-18 18:20 ` [Bug fortran/28771] " patchapp at dberlin dot org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: martin at mpa-garching dot mpg dot de @ 2006-08-18 11:39 UTC (permalink / raw)
  To: gcc-bugs

As far as I know, the following code snippet is not valid Fortran:

program test
  character(len=*) :: foo = 'test'
end

To make the code correct, the variable definition either needs the "parameter"
attribute or an explicit length.
Other compilers (Intel, Fujitsu and NAG) reject this code, but all current
versions of gfortran accept it without warning.


-- 
           Summary: gfortran accepts invalid variable definition
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: martin at mpa-garching dot mpg dot de
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


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

* [Bug fortran/28771] gfortran accepts invalid variable definition
  2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
@ 2006-08-18 18:20 ` patchapp at dberlin dot org
  2006-08-18 18:29 ` pault at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: patchapp at dberlin dot org @ 2006-08-18 18:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from patchapp at dberlin dot org  2006-08-18 18:20 -------
Subject: Bug number PR28771

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00668.html


-- 


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


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

* [Bug fortran/28771] gfortran accepts invalid variable definition
  2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
  2006-08-18 18:20 ` [Bug fortran/28771] " patchapp at dberlin dot org
@ 2006-08-18 18:29 ` pault at gcc dot gnu dot org
  2006-08-20  5:47 ` pault at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-18 18:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pault at gcc dot gnu dot org  2006-08-18 18:29 -------
As the submitter of the patch, I suppose that I had better take on the PR!

Thanks for the report, Martin

Paul


-- 

pault at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-08-18 18:29:42
               date|                            |


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


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

* [Bug fortran/28771] gfortran accepts invalid variable definition
  2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
  2006-08-18 18:20 ` [Bug fortran/28771] " patchapp at dberlin dot org
  2006-08-18 18:29 ` pault at gcc dot gnu dot org
@ 2006-08-20  5:47 ` pault at gcc dot gnu dot org
  2006-08-20  8:21 ` pault at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-20  5:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pault at gcc dot gnu dot org  2006-08-20 05:46 -------
Subject: Bug 28771

Author: pault
Date: Sun Aug 20 05:45:43 2006
New Revision: 116268

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116268
Log:
2006-08-20 Paul Thomas <pault@gcc.gnu.org>

        PR fortran/28601
        PR fortran/28630
        * gfortran.h : Eliminate gfc_dt_list structure and reference
        to it in gfc_namespace.
        * resolve.c (resolve_fl_derived): Remove the building of the
        list of derived types for the current namespace.
        * symbol.c (find_renamed_type): New function to find renamed
        derived types by symbol name rather than symtree name.
        (gfc_use_derived): Search parent namespace for identical
        derived type and use it, even if local version is complete,
        except in interface bodies. Ensure that renamed derived types
        are found by call to find_renamed_type. Recurse for derived
        type components.
        (gfc_free_dt_list): Remove.
        (gfc_free_namespace): Remove call to previous.
        * trans-types.c (copy_dt_decls_ifequal): Remove.
        (gfc_get_derived_type): Remove all the paraphenalia for
        association of derived types, including calls to previous.
        * match.c (gfc_match_allocate): Call gfc_use_derived to
        associate any derived types that are being allocated.

        PR fortran/20886
        * resolve.c (resolve_actual_arglist): The passing of
        a generic procedure name as an actual argument is an
        error.

        PR fortran/28735
        * resolve.c (resolve_variable): Check for a symtree before
        resolving references.

        PR fortran/28762
        * primary.c (match_variable): Return MATCH_NO if the symbol
        is that of the program.

        PR fortran/28425
        * trans-expr.c (gfc_trans_subcomponent_assign): Translate
        derived type component expressions other than another derived
        type constructor.

        PR fortran/28496
        * expr.c (find_array_section): Correct errors in
        the handling of a missing start value for the
        index triplet in an array reference.

        PR fortran/18111
        * trans-decl.c (gfc_build_dummy_array_decl): Before resetting
        reference to backend_decl, set it DECL_ARTIFICIAL.
        (gfc_get_symbol_decl): Likewise for original dummy decl, when
        a copy is made of an array.
        (create_function_arglist): Likewise for the _entry paramter
        in entry_masters.
        (build_entry_thunks): Likewise for dummies in entry thunks.

        PR fortran/28600
        * trans-decl.c (gfc_get_symbol_decl): Ensure that the
        DECL_CONTEXT of the length of a character dummy is the
        same as that of the symbol declaration.

        PR fortran/28771
        * decl.c (add_init_expr_to_sym): Remove setting of charlen for
        an initializer of an assumed charlen variable.

        PR fortran/28660
        * trans-decl.c (generate_expr_decls): New function.
        (generate_dependency_declarations): New function.
        (generate_local_decl): Call previous if not either a dummy or
        a declaration in an entry master.

2006-08-20 Paul Thomas <pault@gcc.gnu.org>

        PR fortran/28630
        * gfortran.dg/used_types_2.f90: New test.

        PR fortran/28601
        * gfortran.dg/used_types_3.f90: New test.

        PR fortran/20886
        * gfortran.dg/generic_actual_arg.f90: New test.

        PR fortran/28735
        * gfortran.dg/module_private_array_refs_1.f90: New test.

        PR fortran/28762
        * gfortran.dg/program_name_1.f90: New test.

        PR fortran/28425
        * gfortran.dg/derived_constructor_comps_1.f90: New test.

        PR fortran/28496
        * gfortran.dg/array_initializer_2.f90: New test.

        PR fortran/18111
        * gfortran.dg/unused_artificial_dummies_1.f90: New test. 

        PR fortran/28600
        * gfortran.dg/assumed_charlen_function_4.f90: New test.

        PR fortran/28771
        * gfortran.dg/assumed_charlen_in_main.f90: New test.

        PR fortran/28660
        * gfortran.dg/dependent_decls_1.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/array_initializer_2.f90
    trunk/gcc/testsuite/gfortran.dg/assumed_charlen_function_4.f90
    trunk/gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90
    trunk/gcc/testsuite/gfortran.dg/dependent_decls_1.f90
    trunk/gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90
    trunk/gcc/testsuite/gfortran.dg/generic_actual_arg.f90
    trunk/gcc/testsuite/gfortran.dg/module_private_array_refs_1.f90
    trunk/gcc/testsuite/gfortran.dg/program_name_1.f90
    trunk/gcc/testsuite/gfortran.dg/unused_artificial_dummies_1.f90
    trunk/gcc/testsuite/gfortran.dg/used_types_2.f90
    trunk/gcc/testsuite/gfortran.dg/used_types_3.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/decl.c
    trunk/gcc/fortran/expr.c
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/match.c
    trunk/gcc/fortran/primary.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/symbol.c
    trunk/gcc/fortran/trans-decl.c
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/fortran/trans-types.c
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug fortran/28771] gfortran accepts invalid variable definition
  2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
                   ` (2 preceding siblings ...)
  2006-08-20  5:47 ` pault at gcc dot gnu dot org
@ 2006-08-20  8:21 ` pault at gcc dot gnu dot org
  2006-08-20 18:09 ` pault at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-20  8:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from pault at gcc dot gnu dot org  2006-08-20 08:21 -------
Subject: Bug 28771

Author: pault
Date: Sun Aug 20 08:20:26 2006
New Revision: 116269

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116269
Log:
2006-08-20 Paul Thomas <pault@gcc.gnu.org>

        PR fortran/28601
        PR fortran/28630
        * gfortran.h : Eliminate gfc_dt_list structure and reference
        to it in gfc_namespace.
        * resolve.c (resolve_fl_derived): Remove the building of the
        list of derived types for the current namespace.
        * symbol.c (find_renamed_type): New function to find renamed
        derived types by symbol name rather than symtree name.
        (gfc_use_derived): Search parent namespace for identical
        derived type and use it, even if local version is complete,
        except in interface bodies. Ensure that renamed derived types
        are found by call to find_renamed_type. Recurse for derived
        type components.
        (gfc_free_dt_list): Remove.
        (gfc_free_namespace): Remove call to previous.
        * trans-types.c (copy_dt_decls_ifequal): Remove.
        (gfc_get_derived_type): Remove all the paraphenalia for
        association of derived types, including calls to previous.
        * match.c (gfc_match_allocate): Call gfc_use_derived to
        associate any derived types that are being allocated.

        PR fortran/20886
        * resolve.c (resolve_actual_arglist): The passing of
        a generic procedure name as an actual argument is an
        error.

        PR fortran/28735
        * resolve.c (resolve_variable): Check for a symtree before
        resolving references.

        PR fortran/28762
        * primary.c (match_variable): Return MATCH_NO if the symbol
        is that of the program.

        PR fortran/28425
        * trans-expr.c (gfc_trans_subcomponent_assign): Translate
        derived type component expressions other than another derived
        type constructor.

        PR fortran/28496
        * expr.c (find_array_section): Correct errors in
        the handling of a missing start value for the
        index triplet in an array reference.

        PR fortran/18111
        * trans-decl.c (gfc_build_dummy_array_decl): Before resetting
        reference to backend_decl, set it DECL_ARTIFICIAL.
        (gfc_get_symbol_decl): Likewise for original dummy decl, when
        a copy is made of an array.
        (create_function_arglist): Likewise for the _entry paramter
        in entry_masters.
        (build_entry_thunks): Likewise for dummies in entry thunks.

        PR fortran/28771
        * decl.c (add_init_expr_to_sym): Remove setting of charlen for
        an initializer of an assumed charlen variable.

        PR fortran/28660
        * trans-decl.c (generate_expr_decls): New function.
        (generate_dependency_declarations): New function.
        (generate_local_decl): Call previous if not either a dummy or
        a declaration in an entry master.

2006-08-20 Paul Thomas <pault@gcc.gnu.org>

        PR fortran/28630
        * gfortran.dg/used_types_2.f90: New test.

        PR fortran/28601
        * gfortran.dg/used_types_3.f90: New test.

        PR fortran/20886
        * gfortran.dg/generic_actual_arg.f90: New test.

        PR fortran/28735
        * gfortran.dg/module_private_array_refs_1.f90: New test.

        PR fortran/28762
        * gfortran.dg/program_name_1.f90: New test.

        PR fortran/28425
        * gfortran.dg/derived_constructor_comps_1.f90: New test.

        PR fortran/28496
        * gfortran.dg/array_initializer_2.f90: New test.

        PR fortran/18111
        * gfortran.dg/unused_artificial_dummies_1.f90: New test. 

        PR fortran/28771
        * gfortran.dg/assumed_charlen_in_main.f90: New test.

        PR fortran/28660
        * gfortran.dg/dependent_decls_1.f90: New test.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/array_initializer_2.f90
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/dependent_decls_1.f90
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_actual_arg.f90
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/module_private_array_refs_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/program_name_1.f90
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/unused_artificial_dummies_1.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_2.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_3.f90
Modified:
    branches/gcc-4_1-branch/gcc/fortran/ChangeLog
    branches/gcc-4_1-branch/gcc/fortran/decl.c
    branches/gcc-4_1-branch/gcc/fortran/expr.c
    branches/gcc-4_1-branch/gcc/fortran/gfortran.h
    branches/gcc-4_1-branch/gcc/fortran/match.c
    branches/gcc-4_1-branch/gcc/fortran/primary.c
    branches/gcc-4_1-branch/gcc/fortran/resolve.c
    branches/gcc-4_1-branch/gcc/fortran/symbol.c
    branches/gcc-4_1-branch/gcc/fortran/trans-decl.c
    branches/gcc-4_1-branch/gcc/fortran/trans-expr.c
    branches/gcc-4_1-branch/gcc/fortran/trans-types.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug fortran/28771] gfortran accepts invalid variable definition
  2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
                   ` (3 preceding siblings ...)
  2006-08-20  8:21 ` pault at gcc dot gnu dot org
@ 2006-08-20 18:09 ` pault at gcc dot gnu dot org
  2006-08-24  4:47 ` pault at gcc dot gnu dot org
  2006-08-24  4:54 ` pault at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-20 18:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pault at gcc dot gnu dot org  2006-08-20 18:08 -------
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

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


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


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

* [Bug fortran/28771] gfortran accepts invalid variable definition
  2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
                   ` (4 preceding siblings ...)
  2006-08-20 18:09 ` pault at gcc dot gnu dot org
@ 2006-08-24  4:47 ` pault at gcc dot gnu dot org
  2006-08-24  4:54 ` pault at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-24  4:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pault at gcc dot gnu dot org  2006-08-24 04:47 -------
Subject: Bug 28771

Author: pault
Date: Thu Aug 24 04:47:28 2006
New Revision: 116369

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116369
Log:
2006-08-23  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/28788
        * gfortran.dg/used_types_4.f90: New test.
        * gfortran.dg/derived_init_2.f90: Modify to check sibling
        association of derived types.
        * gfortran.dg/used_types_2.f90: Add module cleanup.
        * gfortran.dg/used_types_3.f90: The same.

        PR fortran/28771
        * gfortran.dg/assumed_charlen_in_main.f90: Modify to check
        fix of regression.

2006-08-23  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/28788
        * gfortran.dg/used_types_4.f90: New test.
        * gfortran.dg/derived_init_2.f90: Modify to check sibling
        association of derived types.
        * gfortran.dg/used_types_2.f90: Add module cleanup.
        * gfortran.dg/used_types_3.f90: The same.

        PR fortran/28771
        * gfortran.dg/assumed_charlen_in_main.f90: Modify to check
        fix of regression.

Added:
    trunk/gcc/testsuite/gfortran.dg/used_types_4.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/decl.c
    trunk/gcc/fortran/symbol.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90
    trunk/gcc/testsuite/gfortran.dg/derived_init_2.f90
    trunk/gcc/testsuite/gfortran.dg/used_types_2.f90
    trunk/gcc/testsuite/gfortran.dg/used_types_3.f90


-- 


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


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

* [Bug fortran/28771] gfortran accepts invalid variable definition
  2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
                   ` (5 preceding siblings ...)
  2006-08-24  4:47 ` pault at gcc dot gnu dot org
@ 2006-08-24  4:54 ` pault at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-24  4:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from pault at gcc dot gnu dot org  2006-08-24 04:54 -------
Subject: Bug 28771

Author: pault
Date: Thu Aug 24 04:54:18 2006
New Revision: 116370

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116370
Log:
2006-08-24  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/28788
        * symbol.c (shift_types): Shift the derived type references in
        formal namespaces.
        (gfc_use_derived): Return if the derived type symbol is already
        in another namspace.  Add searches for the derived type in
        sibling namespaces.

        PR fortran/28771
        * decl.c (add_init_expr_to_sym): Restore the original but
        restricted to parameter arrays to fix a regression.

2006-08-24  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/28788
        * gfortran.dg/used_types_4.f90: New test.
        * gfortran.dg/used_types_2.f90: Add module cleanup.
        * gfortran.dg/used_types_3.f90: The same.

        PR fortran/28771
        * gfortran.dg/assumed_charlen_in_main.f90: Modify to check
        fix of regression.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_4.f90
Modified:
    branches/gcc-4_1-branch/gcc/fortran/ChangeLog
    branches/gcc-4_1-branch/gcc/fortran/decl.c
    branches/gcc-4_1-branch/gcc/fortran/symbol.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
   
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_2.f90
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_3.f90


-- 


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


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

end of thread, other threads:[~2006-08-24  4:54 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-08-18 11:39 [Bug fortran/28771] New: gfortran accepts invalid variable definition martin at mpa-garching dot mpg dot de
2006-08-18 18:20 ` [Bug fortran/28771] " patchapp at dberlin dot org
2006-08-18 18:29 ` pault at gcc dot gnu dot org
2006-08-20  5:47 ` pault at gcc dot gnu dot org
2006-08-20  8:21 ` pault at gcc dot gnu dot org
2006-08-20 18:09 ` pault at gcc dot gnu dot org
2006-08-24  4:47 ` pault at gcc dot gnu dot org
2006-08-24  4:54 ` pault 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).