This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/17737] ICE when variable appears in two data statements



------- Comment #12 from pault at gcc dot gnu dot org  2005-11-06 22:50 -------
Subject: Bug 17737

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  <pault@gcc.gnu.org>

        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  <pault@gcc.gnu.org>

        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  <pault@gcc.gnu.org>
+!
+  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  <pault@gcc.gnu.org>
+!
+  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=17737


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]