------- Comment #8 from pault at gcc dot gnu dot org 2007-02-12 07:35 ------- Subject: Bug 30514
Author: pault Date: Mon Feb 12 07:34:51 2007 New Revision: 121841 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=121841 Log: 2007-02-12 Paul Thomas <[EMAIL PROTECTED]> BACKPORTS FROM TRUNK PR fortran/30284 PR fortran/30626 * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute from function and make sure that substring lengths are translated. (is_aliased_array): Remove static attribute. * trans.c : Add prototypes for gfc_conv_aliased_arg and is_aliased_array. * trans-io.c (set_internal_unit): Add the post block to the arguments of the function. Use is_aliased_array to check if temporary is needed; if so call gfc_conv_aliased_arg. (build_dt): Pass the post block to set_internal_unit and add to the block after all io activiy is done. PR fortran/30407 * trans-expr.c (gfc_conv_operator_assign): New function. * trans.h : Add prototype for gfc_conv_operator_assign. * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for a potential operator assignment subroutine. If it is non-NULL call gfc_conv_operator_assign instead of the first assignment. ( gfc_trans_where_2): In the case of an operator assignment, extract the argument expressions from the code for the subroutine call and pass the symbol to gfc_trans_where_assign. resolve.c (resolve_where, gfc_resolve_where_code_in_forall, gfc_resolve_forall_body): Resolve the subroutine call for operator assignments. PR fortran/30514 * array.c (match_array_element_spec): If the length of an array is negative, adjust the upper limit to make it zero length. 2007-02-12 Paul Thomas <[EMAIL PROTECTED]> PR fortran/30284 * gfortran.dg/arrayio_11.f90: New test. PR fortran/30626 * gfortran.dg/arrayio_12.f90: New test. PR fortran/30407 * gfortran.dg/where_operator_assign_1.f90: New test. * gfortran.dg/where_operator_assign_2.f90: New test. * gfortran.dg/where_operator_assign_3.f90: New test. PR fortran/30514 * gfortran.dg/zero_sized_2.f90: New test. 2007-02-12 Paul Thomas <[EMAIL PROTECTED]> PR fortran/30284 PR fortran/30626 * io/transfer.c (init_loop_spec, next_array_record): Change to lbound rather than unity base. Added: branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/arrayio_11.f90 branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/arrayio_12.f90 branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/where_operator_assign_1.f90 branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/where_operator_assign_2.f90 branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/where_operator_assign_3.f90 branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/zero_sized_2.f90 Modified: branches/gcc-4_2-branch/gcc/fortran/ChangeLog branches/gcc-4_2-branch/gcc/fortran/array.c branches/gcc-4_2-branch/gcc/fortran/resolve.c branches/gcc-4_2-branch/gcc/fortran/trans-expr.c branches/gcc-4_2-branch/gcc/fortran/trans-io.c branches/gcc-4_2-branch/gcc/fortran/trans-stmt.c branches/gcc-4_2-branch/gcc/fortran/trans.h branches/gcc-4_2-branch/gcc/testsuite/ChangeLog branches/gcc-4_2-branch/libgfortran/ChangeLog branches/gcc-4_2-branch/libgfortran/io/transfer.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30514