Update ChangeLog and version files for release
[official-gcc.git] / gcc / testsuite / gfortran.dg / host_assoc_function_7.f90
blobdf240a9f985d39162c50c6e5332744d7ff5bd59d
1 ! { dg-do run }
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>
8 module sa0054_stuff
9 REAL :: S_REAL_SUM_2(10) = [(REAL (I), I = 1, 10)]
10 contains
11 ELEMENTAL FUNCTION S_REAL_SUM_I (A)
12 REAL :: S_REAL_SUM_I
13 REAL, INTENT(IN) :: A
14 X = 1.0
15 S_REAL_SUM_I = X
16 END FUNCTION S_REAL_SUM_I
17 SUBROUTINE SA0054 (RDA)
18 REAL RDA(:)
19 RDA = + S_REAL_SUM_I (RDA) ! Reported problem => ICE
20 RDA = RDA + S_REAL_SUM_2 (INT (RDA)) ! Also failed
21 CONTAINS
22 ELEMENTAL FUNCTION S_REAL_SUM_I (A)
23 REAL :: S_REAL_SUM_I
24 REAL, INTENT(IN) :: A
25 S_REAL_SUM_I = 2.0 * A
26 END FUNCTION S_REAL_SUM_I
27 ELEMENTAL FUNCTION S_REAL_SUM_2 (A)
28 REAL :: S_REAL_SUM_2
29 INTEGER, INTENT(IN) :: A
30 S_REAL_SUM_2 = 2.0 * A
31 END FUNCTION S_REAL_SUM_2
32 END SUBROUTINE
33 end module sa0054_stuff
35 use sa0054_stuff
36 REAL :: RDA(10) = [(REAL(I), I = 1, 10)]
37 call SA0054 (RDA)
38 IF (ANY (INT (RDA) .ne. [(6 * I, I = 1, 10)])) print *, rda
39 END