33 lines · plain
1!RUN: %flang_fc1 -fdebug-unparse %s | FileCheck %s2!Ensure that non-elemental specific takes precedence over elemental3!defined assignment, even with non-default PASS argument.4module m5 type base6 integer :: n = -9997 contains8 procedure, pass(from) :: array_assign_scalar9 procedure :: elemental_assign10 generic :: assignment(=) => array_assign_scalar, elemental_assign11 end type12 contains13 subroutine array_assign_scalar(to, from)14 class(base), intent(out) :: to(:)15 class(base), intent(in) :: from16 to%n = from%n17 end18 impure elemental subroutine elemental_assign(to, from)19 class(base), intent(out) :: to20 class(base), intent(in) :: from21 to%n = from%n22 end23end24 25use m26type(base) :: array(1), scalar27scalar%n = 128!CHECK: CALL array_assign_scalar(array,(scalar))29array = scalar30!CHECK: CALL elemental_assign(array,[base::scalar])31array = [scalar]32end33