https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64397

--- Comment #3 from janus at gcc dot gnu.org ---
Actually one can reduce it even further:


program main

  type :: my_integer
    real, allocatable :: x(:)
  end type
  type(my_integer) :: a

  a=my_integer([1])
  write (*,*) "A"
  call ass(a)
  write (*,*) "B"
  call ass((a))
  write (*,*) "C"

contains

  subroutine ass(b)
    class(my_integer), intent(in) :: b
    print *,'called ass'
  end subroutine

end


This program does not do anything useful any more, but it still shows the same
segfault at/after the call to "ass((a))":

$ ./a.out 
 A
 called ass
 B
 called ass

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.


Making 'b' a TYPE instead of a CLASS makes the error go away.

Reply via email to