2 ! Tests the fix for PR38907, in which any expressions, including unary plus,
3 ! in front of the call to S_REAL_SUM_I (marked) would throw the mechanism
4 ! for correcting invalid host association.
6 ! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
9 REAL :: S_REAL_SUM_2(10) = [(REAL (I), I = 1, 10)]
11 ELEMENTAL FUNCTION S_REAL_SUM_I (A)
16 END FUNCTION S_REAL_SUM_I
17 SUBROUTINE SA0054 (RDA)
19 RDA = + S_REAL_SUM_I (RDA) ! Reported problem => ICE
20 RDA = RDA + S_REAL_SUM_2 (INT (RDA)) ! Also failed
22 ELEMENTAL FUNCTION S_REAL_SUM_I (A)
25 S_REAL_SUM_I = 2.0 * A
26 END FUNCTION S_REAL_SUM_I
27 ELEMENTAL FUNCTION S_REAL_SUM_2 (A)
29 INTEGER, INTENT(IN) :: A
30 S_REAL_SUM_2 = 2.0 * A
31 END FUNCTION S_REAL_SUM_2
33 end module sa0054_stuff
36 REAL :: RDA(10) = [(REAL(I), I = 1, 10)]
38 IF (ANY (INT (RDA) .ne. [(6 * I, I = 1, 10)])) print *, rda
41 ! { dg-final { cleanup-modules "sa0054_stuff" } }