This one was challenging to even describe.  This ICE occurs with gfortran
12, 13, 14, and 15.

% cat all.f90
module subdomain_m
  implicit none

  type subdomain_t
    real :: s_ = 0.
  contains
    generic :: operator(.laplacian.) => laplacian
    procedure laplacian
  end type

contains

  function laplacian(rhs)
    class(subdomain_t), intent(in) :: rhs
    type(subdomain_t) laplacian
  end function

end module

  use subdomain_m
  implicit none

  type operands_t
  end type

  type(subdomain_t) phi
  type(operands_t) operands

  associate(laplacian_phi => .laplacian. phi)
    operands = approximates(laplacian_phi%s_)
  end associate

contains

  function approximates(actual)
    real actual
    type(operands_t) approximates
  end function

end

% gfortran all.f90
f951: internal compiler error: in matching_typebound_op, at
fortran/interface.cc:4763
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://github.com/Homebrew/homebrew-core/issues> for instructions.

% gfortran --version
GNU Fortran (Homebrew GCC 15.1.0) 15.1.0

Reply via email to