From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26026 invoked by alias); 10 Nov 2006 21:53:21 -0000 Received: (qmail 24709 invoked by alias); 10 Nov 2006 21:52:40 -0000 Date: Fri, 10 Nov 2006 21:53:00 -0000 Message-ID: <20061110215240.24707.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/29216] Derived type components of function results are not initialised In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pault at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-11/txt/msg00919.txt.bz2 List-Id: ------- Comment #12 from pault at gcc dot gnu dot org 2006-11-10 21:52 ------- Subject: Bug 29216 Author: pault Date: Fri Nov 10 21:52:00 2006 New Revision: 118666 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=118666 Log: 2006-11-10 Paul Thomas Backport from mainline. PR fortran/29371 * trans-expr.c (gfc_trans_pointer_assignment): Add the expression for the assignment of null to the data field to se->pre, rather than block. PR fortran/29392 * data.c (create_character_intializer): Copy and simplify the expressions for the start and end of a sub-string reference. PR fortran/29216 PR fortran/29314 * gfortran.h : Add EXEC_INIT_ASSIGN. * dump-parse-tree.c (gfc_show_code_node): The same. * trans-expr.c (gfc_trans_init_assign): New function. * trans-stmt.h : Add prototype for gfc_trans_init_assign. * trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN. * resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by EXEC_INIT_ASSIGN. (resolve_code): EXEC_INIT_ASSIGN does not need resolution. (apply_default_init): New function. (resolve_symbol): Call it for derived types that become defined but which do not already have an initialization expression.. * st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN. PR fortran/29387 * trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have a specific case for EXPR_VARIABLE and, in default, build an ss to call gfc_conv_expr_descriptor for array expressions.. PR fortran/29490 * trans-expr.c (gfc_set_interface_mapping_bounds): In the case that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor values for it and GFC_TYPE_ARRAY_UBOUND. PR fortran/29641 * trans-types.c (gfc_get_derived_type): If the derived type namespace has neither a parent nor a proc_name, set NULL for the search namespace. PR fortran/24518 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Use built_in fmod for both MOD and MODULO, if it is available. PR fortran/29565 * trans-expr.c (gfc_conv_aliased_arg): For an INTENT(OUT), save the declarations from the unused loops by merging the block scope for each; this ensures that the temporary is declared. 2006-11-10 Paul Thomas PR fortran/29371 * gfortran.dg/nullify_3.f90: New test. PR fortran/29392 * gfortran.dg/data_char_3.f90: New test. PR fortran/29216 * gfortran.dg/result_default_init_1.f90: New test. PR fortran/29314 * gfortran.dg/automatic_default_init_1.f90: New test. PR fortran/29387 * trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have a specific case for EXPR_VARIABLE and, in default, build an ss to call gfc_conv_expr_descriptor for array expressions.. PR fortran/29490 * trans-expr.c (gfc_set_interface_mapping_bounds): In the case that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor values for it and GFC_TYPE_ARRAY_UBOUND. PR fortran/29641 * trans-types.c (gfc_get_derived_type): If the derived type namespace has neither a parent nor a proc_name, set NULL for the search namespace. PR fortran/29565 * gfortran.dg/gfortran.dg/aliasing_dummy_3.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/actual_array_interface_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/aliasing_dummy_3.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/automatic_default_init_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/data_char_3.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_2.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/nullify_3.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/result_default_init_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_11.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_12.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/data.c branches/gcc-4_1-branch/gcc/fortran/dump-parse-tree.c branches/gcc-4_1-branch/gcc/fortran/f95-lang.c branches/gcc-4_1-branch/gcc/fortran/gfortran.h branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/st.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/fortran/trans-intrinsic.c branches/gcc-4_1-branch/gcc/fortran/trans-stmt.h branches/gcc-4_1-branch/gcc/fortran/trans-types.c branches/gcc-4_1-branch/gcc/fortran/trans.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29216