From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28499 invoked by alias); 6 Nov 2005 22:50:57 -0000 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 Received: (qmail 28400 invoked by alias); 6 Nov 2005 22:50:51 -0000 Date: Sun, 06 Nov 2005 22:50:00 -0000 Message-ID: <20051106225051.28399.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/24534] [4.0/4.1 Regression] PUBLIC derived types with private components In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pault at gcc dot gnu dot org" X-SW-Source: 2005-11/txt/msg00888.txt.bz2 List-Id: ------- Comment #10 from pault at gcc dot gnu dot org 2005-11-06 22:50 ------- Subject: Bug 24534 Author: pault Date: Sun Nov 6 22:50:38 2005 New Revision: 106572 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=106572 Log: 2005-11-06 Paul Thomas PR fortran/24534 * resolve.c (resolve_symbol): Exclude case of PRIVATE declared within derived type from error associated with PRIVATE type components within derived type. PR fortran/20838 PR fortran/20840 * gfortran.h: Add prototype for gfc_has_vector_index. * io.c (gfc_resolve_dt): Error if internal unit has a vector index. * expr.c (gfc_has_vector_index): New function to check if any of the array references of an expression have vector inidices. (gfc_check_pointer_assign): Error if internal unit has a vector index. PR fortran/17737 * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE and replace by a standard dependent warning/error if overwriting an existing initialization. * decl.c (gfc_data_variable): Remove old error for already initialized variable and the unused error check for common block variables. Add error for host associated variable and standard dependent error for common block variables, outside of blockdata. * symbol.c (check_conflict): Add constraints for DATA statement. 2005-11-06 Paul Thomas PR fortran/24534 gfortran.dg/private_type_2.f90: Modified to check that case with PRIVATE declaration within derived type is accepted. PR fortran/20838 gfortran.dg/pointer_assign_1.f90: New test. PR fortran/20840 * gfortran.dg/arrayio_0.f90: New test. PR fortran/17737 gfortran.dg/data_initialized.f90: New test. gfortran.dg/data_constraints_1.f90: New test. gfortran.dg/data_constraints_2.f90: New test. Added: branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/arrayio_0.f90 (with props) branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/data_constraints_1.f90 branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/data_constraints_2.f90 branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/data_initialized.f90 branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/pointer_assign_1.f90 (with props) Modified: branches/gcc-4_0-branch/gcc/fortran/ChangeLog branches/gcc-4_0-branch/gcc/fortran/data.c branches/gcc-4_0-branch/gcc/fortran/decl.c branches/gcc-4_0-branch/gcc/fortran/expr.c branches/gcc-4_0-branch/gcc/fortran/gfortran.h branches/gcc-4_0-branch/gcc/fortran/io.c branches/gcc-4_0-branch/gcc/fortran/resolve.c branches/gcc-4_0-branch/gcc/fortran/symbol.c branches/gcc-4_0-branch/gcc/testsuite/ChangeLog branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/private_type_2.f90 Added: branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/arrayio_0.f90 URL: http://gcc.gnu.org/viewcvs/branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/arrayio_0.f90?root=gcc&view=auto&rev=106572 ============================================================================== --- branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/arrayio_0.f90 (added) +++ branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/arrayio_0.f90 Sun Nov 6 22:50:38 2005 @@ -1,0 +1,19 @@ +! { dg-do compile } +! Tests fix for PR20840 - would ICE with vector subscript in +! internal unit. +! +! Contributed by Paul Thomas +! + character(len=12), dimension(4) :: iu, buff + character(len=48), dimension(2) :: iue + equivalence (iu, iue) + integer, dimension(4) :: v = (/2,1,4,3/) + iu = (/"Vector","subscripts","not","allowed!"/) + read (iu, '(a12/)') buff + read (iue(1), '(4a12)') buff + read (iu(4:1:-1), '(a12/)') buff + read (iu(v), '(a12/)') buff ! { dg-error "with vector subscript" } + read (iu((/2,4,3,1/)), '(a12/)') buff ! { dg-error "with vector subscript" } + print *, buff + end + Propchange: branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/arrayio_0.f90 ('svn:executable' added) Added: branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/pointer_assign_1.f90 URL: http://gcc.gnu.org/viewcvs/branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/pointer_assign_1.f90?root=gcc&view=auto&rev=106572 ============================================================================== --- branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/pointer_assign_1.f90 (added) +++ branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/pointer_assign_1.f90 Sun Nov 6 22:50:38 2005 @@ -1,0 +1,17 @@ +! { dg-do compile } +! Tests fix for PR20838 - would ICE with vector subscript in +! pointer assignment. +! +! Contributed by Paul Thomas +! + integer, parameter, dimension(3) :: i = (/2,1,3/) + integer, dimension(3), target :: tar + integer, dimension(2, 3), target :: tar2 + integer, dimension(:), pointer :: ptr + ptr => tar + ptr => tar(3:1:-1) + ptr => tar(i) ! { dg-error "with vector subscript" } + ptr => tar2(1, :) + ptr => tar2(2, i) ! { dg-error "with vector subscript" } + end + Propchange: branches/gcc-4_0-branch/gcc/testsuite/gfortran.dg/pointer_assign_1.f90 ('svn:executable' added) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24534