https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64209
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
CC| |janus at gcc dot gnu.org
Summary|[OOP] copy class(*) |[OOP] runtime segfault with
|component from type with a |CLASS(*), INTENT(OUT) dummy
|subroutine |argument
--- Comment #2 from janus at gcc dot gnu.org ---
I could boil it down to this much simpler case:
PROGRAM main
IMPLICIT NONE
INTEGER :: x, y
x = 5
CALL copy(x,y)
PRINT *,y
contains
SUBROUTINE copy(a,b)
integer, INTENT(IN) :: a
CLASS(*), INTENT(OUT) :: b
SELECT TYPE(b); TYPE IS(integer)
b = a
END SELECT
END SUBROUTINE
END
Segfaults with 4.8, 4.9 and trunk. Earlier versions don't support unlimited
polymorphism.
Had a quick look over the dump, but could not directly see where things go
wrong.