https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86052
Paul Thomas <pault at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pault at gcc dot gnu.org --- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> --- (In reply to Jürgen Reuter from comment #0) > The following example from c.l.f. (Dec 14, 2015, "explicit specialization > for Fortran2003 recursively-defined parameterized data types?" leads to an > ICE with the current trunk of gfortran (r260633). In the code below, if the > non-pointer declaration is commented in, gfortran correctly vetoes this as > "Component at (1) must have the POINTER attribute", but with the version > below this leads to an ICE. With ifort v18 and v19 the code is rejected as > "error #7555: Not yet implemented: Type containing ALLOCATABLE/POINTER field > of same type with different type parameters. > type(tensor(rank-1,dim)), pointer :: values(:)" > > > > ***** > > Code triggering the ICE: > > module tensor_names > implicit none > private > type :: tensor(rank,dim) > integer, kind :: rank > integer, kind :: dim > type(tensor(rank-1,dim)), pointer :: values(:) > ! type(tensor(rank-1,dim)) :: values(dim) ! Illegal!!! > contains > procedure, private :: create_tensor_rank_2_dim_2 > generic :: create => create_tensor_rank_2_dim_2 > end type > contains > subroutine create_tensor_rank_2_dim_2 ( this ) > implicit none > class(tensor(2,2)), intent(inout) :: this > end subroutine > end module tensor_names Hi Juergen, You really come up with some fine ones :-) I know where this is happening without even looking. I am sharpening up for a PDT-fest for the last half of this month. Next week, I will commence with a triage of PDTs and clear out some of the last of my non-PDT bugs. Many thanks Paul