blob: 48539f19927c14d27958edc2223c0582c0bb98a8 [file] [log] [blame] [edit]
!RUN: %flang_fc1 -fdebug-unparse %s | FileCheck %s
!Ensure that non-elemental specific takes precedence over elemental
!defined assignment, even with non-default PASS argument.
module m
type base
integer :: n = -999
contains
procedure, pass(from) :: array_assign_scalar
procedure :: elemental_assign
generic :: assignment(=) => array_assign_scalar, elemental_assign
end type
contains
subroutine array_assign_scalar(to, from)
class(base), intent(out) :: to(:)
class(base), intent(in) :: from
to%n = from%n
end
impure elemental subroutine elemental_assign(to, from)
class(base), intent(out) :: to
class(base), intent(in) :: from
to%n = from%n
end
end
use m
type(base) :: array(1), scalar
scalar%n = 1
!CHECK: CALL array_assign_scalar(array,(scalar))
array = scalar
!CHECK: CALL elemental_assign(array,[base::scalar])
array = [scalar]
end