http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47224
Summary: ICE with procedure pointer component Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: m.a.hul...@tue.nl The code below gives: t.f90: In function ‘poisson_natboun_surface’: t.f90:23:0: internal compiler error: in gfc_walk_variable_expr, at fortran/trans-array.c:7325 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Note, that if xg(:) is replaced with xg it compiles normally. module element_defs_m use kind_defs_m type coefficients_t procedure (dum_vfunc), pointer, nopass :: vfunc => null() end type coefficients_t contains function dum_vfunc ( n, x ) integer, intent(in) :: n real, intent(in), dimension(:) :: x real, dimension(n) :: dum_vfunc dum_vfunc = 0 end function dum_vfunc end module element_defs_m module poisson_elements_m use element_defs_m implicit none contains subroutine poisson_natboun_surface ( coefficients ) type(coefficients_t), intent(in) :: coefficients real, allocatable, dimension(:) :: xg, normal real :: a integer :: ndim = 3 a = dot_product ( normal, coefficients%vfunc ( ndim, xg(:) ) ) end subroutine poisson_natboun_surface end module poisson_elements_m