The following code triggers an ICE with gcc-4.3-20080208
<foo.f90>
MODULE foo

  TYPE, PUBLIC :: bar
    PRIVATE
      REAL :: value
  END TYPE bar

  INTERFACE ASSIGNMENT (=)
    MODULE PROCEDURE assign_bar
  END INTERFACE ASSIGNMENT (=)

CONTAINS

  ELEMENTAL SUBROUTINE assign_bar (to, from)
    TYPE(bar), INTENT(OUT) :: to
    TYPE(bar), INTENT(IN) :: from
    to%value= from%value
  END SUBROUTINE

  SUBROUTINE my_sub (in, out)
    IMPLICIT NONE
    TYPE(bar), DIMENSION(:,:), POINTER :: in
    TYPE(bar), DIMENSION(:,:), POINTER :: out

    ALLOCATE( out(1:42, 1:42) )
    out(1, 1:42) = in(1, 1:42)

  END SUBROUTINE

END MODULE foo
</foo.f90>

/home/maik/workspace/gcc/gcc-4.3-20080208/stage/bin/gfortran-4.3  -o
CMakeFiles/mylib.dir/foo.f90.o  -I/home/maik/workspace/Debug_maik/Debug   -c
/home/maik/workspace/Debug_maik/foo.f90
/home/maik/workspace/Debug_maik/foo.f90: In function 'my_sub':
/home/maik/workspace/Debug_maik/foo.f90:25: internal compiler error: in
gfc_conv_array_index_offset, at fortran/trans-array.c:2201
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [CMakeFiles/mylib.dir/foo.f90.o] Error 1
make[2]: Leaving directory `/home/maik/workspace/Debug_maik/Debug'
make[1]: *** [CMakeFiles/mylib.dir/all] Error 2
make[1]: Leaving directory `/home/maik/workspace/Debug_maik/Debug'
make: *** [all] Error 2


If ELEMENTAL is omitted or replaced by PURE it compiles fine.

 -- Maik


-- 
           Summary:  ICE in gfc_conv_array_index_offset
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: beckmann dot maik at googlemail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35184

Reply via email to