This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/30514] [4.2 and 4. only] zero-sized array wrongly rejected: integer :: i(1:-1)
- From: "pault at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Feb 2007 07:35:11 -0000
- Subject: [Bug fortran/30514] [4.2 and 4. only] zero-sized array wrongly rejected: integer :: i(1:-1)
- References: <bug-30514-13404@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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 <pault@gcc.gnu.org>
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 <pault@gcc.gnu.org>
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 <pault@gcc.gnu.org>
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