public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/28425] New: Derived type initialization via a derived type is broken
@ 2006-07-18 18:48 kargl at gcc dot gnu dot org
2006-07-18 18:52 ` [Bug fortran/28425] " kargl at gcc dot gnu dot org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: kargl at gcc dot gnu dot org @ 2006-07-18 18:48 UTC (permalink / raw)
To: gcc-bugs
It appears that the initialization of a derived type that includes
a derived type is broken. Consider the following code.
!
! Original version sent by Vivek Rao on 18 Jan 06
! Modified by Steve Kargl to remove IO
!
module foo_mod
implicit none
type :: date_m
integer :: month
end type date_m
type :: file_info
type(date_m) :: date
end type file_info
end module foo_mod
program prog
use foo_mod
implicit none
type(date_m) :: dat
type(file_info) :: xx
dat = date_m(1)
xx = file_info(dat)
if (xx%date%month /= 1) call abort
end program prog
the original tree looks like
MAIN__ ()
{
struct date_m dat;
struct file_info xx;
_gfortran_set_std (70, 127, 0);
{
struct date_m date_m.0;
date_m.0.month = 1;
dat = date_m.0;
}
{
struct file_info file_info.1;
xx = file_info.1;
}
if (xx.date.month != 1)
{
_gfortran_abort ();
}
else
{
(void) 0;
}
}
--
Summary: Derived type initialization via a derived type is broken
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kargl at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28425
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/28425] Derived type initialization via a derived type is broken
2006-07-18 18:48 [Bug fortran/28425] New: Derived type initialization via a derived type is broken kargl at gcc dot gnu dot org
@ 2006-07-18 18:52 ` kargl at gcc dot gnu dot org
2006-08-04 16:56 ` pault at gcc dot gnu dot org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: kargl at gcc dot gnu dot org @ 2006-07-18 18:52 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from kargl at gcc dot gnu dot org 2006-07-18 18:52 -------
The parse tree looks okay to me.
ASSIGN MAIN__:dat date_m(1)
ASSIGN MAIN__:xx file_info(MAIN__:dat)
IF (<> MAIN__:xx % date % month 1)
CALL _gfortran_abort ()
ENDIF
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28425
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/28425] Derived type initialization via a derived type is broken
2006-07-18 18:48 [Bug fortran/28425] New: Derived type initialization via a derived type is broken kargl at gcc dot gnu dot org
2006-07-18 18:52 ` [Bug fortran/28425] " kargl at gcc dot gnu dot org
@ 2006-08-04 16:56 ` pault at gcc dot gnu dot org
2006-08-06 18:35 ` patchapp at dberlin dot org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-04 16:56 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from pault at gcc dot gnu dot org 2006-08-04 16:56 -------
The patch for this got absorbed into the allocatable component patch - I will
extricate it and post it asap since it is only indirectly associated..
Paul
--
pault at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |erik dot edelmann at iki dot
| |fi
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-04 16:56:15
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28425
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/28425] Derived type initialization via a derived type is broken
2006-07-18 18:48 [Bug fortran/28425] New: Derived type initialization via a derived type is broken kargl at gcc dot gnu dot org
2006-07-18 18:52 ` [Bug fortran/28425] " kargl at gcc dot gnu dot org
2006-08-04 16:56 ` pault at gcc dot gnu dot org
@ 2006-08-06 18:35 ` patchapp at dberlin dot org
2006-08-20 5:47 ` pault at gcc dot gnu dot org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: patchapp at dberlin dot org @ 2006-08-06 18:35 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from patchapp at dberlin dot org 2006-08-06 18:35 -------
Subject: Bug number PR28425
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/msg00152.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28425
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/28425] Derived type initialization via a derived type is broken
2006-07-18 18:48 [Bug fortran/28425] New: Derived type initialization via a derived type is broken kargl at gcc dot gnu dot org
` (2 preceding siblings ...)
2006-08-06 18:35 ` patchapp at dberlin 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:08 ` pault at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-20 5:47 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from pault at gcc dot gnu dot org 2006-08-20 05:46 -------
Subject: Bug 28425
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=28425
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/28425] Derived type initialization via a derived type is broken
2006-07-18 18:48 [Bug fortran/28425] New: Derived type initialization via a derived type is broken kargl at gcc dot gnu dot org
` (3 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:08 ` pault at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-20 8:21 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from pault at gcc dot gnu dot org 2006-08-20 08:21 -------
Subject: Bug 28425
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=28425
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug fortran/28425] Derived type initialization via a derived type is broken
2006-07-18 18:48 [Bug fortran/28425] New: Derived type initialization via a derived type is broken kargl at gcc dot gnu dot org
` (4 preceding siblings ...)
2006-08-20 8:21 ` pault at gcc dot gnu dot org
@ 2006-08-20 18:08 ` pault at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-08-20 18:08 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 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=28425
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2006-08-20 18:08 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-07-18 18:48 [Bug fortran/28425] New: Derived type initialization via a derived type is broken kargl at gcc dot gnu dot org
2006-07-18 18:52 ` [Bug fortran/28425] " kargl at gcc dot gnu dot org
2006-08-04 16:56 ` pault at gcc dot gnu dot org
2006-08-06 18:35 ` patchapp at dberlin 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:08 ` 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).