https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77703
Bug ID: 77703 Summary: ICE on assignment to pointer function Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: pault at gcc dot gnu.org Target Milestone: --- Although related to PR68226, this code ICEs in a different place module m implicit none private integer, parameter, public :: n = 2 integer, parameter :: ell = 6 character(len=n*ell), target, public :: s public :: t contains function t( idx ) result( substr ) integer, intent(in) :: idx !.. Function result character(len=ell), pointer :: substr if ( (idx < 0).or.(idx > n) ) then error stop end if substr => s((idx-1)*ell+1:idx*ell) return end function t end module m program p use m, only : s, t, n integer :: i ! Some sections of code define 's' s = "123456789012" ! Then perform operations involving 't' do i = 1, n print *, t(i) end do ! Other sections of code define 't' t(1) = "Hello" ! t(2) = "World!" ! Then perform operations involving 's' print *, s stop end program p internal compiler error: in gfc_trans_auto_character_variable, at fortran/trans-decl.c:3763 0x6dec56 gfc_trans_auto_character_variable ../../trunk/gcc/fortran/trans-decl.c:3763 0x6dec56 gfc_trans_deferred_vars(gfc_symbol*, gfc_wrapped_block*) ../../trunk/gcc/fortran/trans-decl.c:4512 0x6e0bf3 gfc_generate_function_code(gfc_namespace*) ../../trunk/gcc/fortran/trans-decl.c:6362 0x66aea6 translate_all_program_units ../../trunk/gcc/fortran/parse.c:5936 0x66aea6 gfc_parse_file() ../../trunk/gcc/fortran/parse.c:6142 0x6ad472 gfc_be_parse_file ../../trunk/gcc/fortran/f95-lang.c:198 Please submit a full bug report, The current version of ifort comes up with an error message to the effect that this is an unimplemented feature. Paul