$> cat ice.f90
MODULE ice_gfortran
  INTERFACE ice
    MODULE PROCEDURE ice_i
  END INTERFACE

CONTAINS
  SUBROUTINE ice_i(i)
    INTEGER, INTENT(IN) :: i
    ! do nothing
  END SUBROUTINE
END MODULE

MODULE provoke_ice
CONTAINS
  SUBROUTINE provoke
    USE ice_gfortran
    CALL ice(23.0)
  END SUBROUTINE
END MODULE

PROGRAM xxx
  USE provoke_ice
  CALL provoke
END PROGRAM

$> gfortran-4.1.1 -g ice.f90
ice.f90:3: internal compiler error: Segmentation fault
Please submit a full bug report,


Without the intermediate module 'provoke_ice', an error is reported:


$> cat no-ice.f90
MODULE ice_gfortran
  INTERFACE ice
    MODULE PROCEDURE ice_i
  END INTERFACE

CONTAINS
  SUBROUTINE ice_i(i)
    INTEGER, INTENT(IN) :: i
    ! do nothing
  END SUBROUTINE
END MODULE

PROGRAM xxx
  USE ice_gfortran
  CALL ice(23.0)
END PROGRAM

$> gfortran-4.1.1 -g no-ice.f90
In file no-ice.f90:15

  CALL ice(23.0)
               1
Error: Generic subroutine 'ice' at (1) is not an intrinsic subroutine


-- 
           Summary: gfortran ICE if argument list does not match generic
                    interface
           Product: gcc
           Version: 4.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: daniel dot franke at imbs dot uni-luebeck dot de
  GCC host triplet: i686-pc-linux-gnu


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

Reply via email to