I have noticed we don't export these 6 symbols and thus the testcase
below fails to link.
2020-05-29 Jakub Jelinek <jakub@redhat.com>
PR libfortran/95390
* gfortran.dg/findloc_8.f90: New test.
* Makefile.am (i_findloc0_c): Add findloc0_i10.c.
(i_findloc1_c): Add findloc1_i10.c.
* gfortran.map (GFORTRAN_10.2): New symbol version, export
_gfortran_{,m,s}findloc{0,1}_c10 symbols.
* Makefile.in: Regenerated.
* generated/findloc0_c10.c: Generated.
* generated/findloc1_c10.c: Generated.
30 lines
818 B
Fortran
30 lines
818 B
Fortran
! PR libfortran/95390
|
|
! { dg-do run { target fortran_real_10 } }
|
|
|
|
complex(kind=10) :: a(6), b, d(2,2)
|
|
logical :: m(6), n, o(2,2)
|
|
integer :: c(1), e(2)
|
|
a = (/ 1., 2., 17., 2., 2., 6. /)
|
|
b = 17.
|
|
c = findloc (a, b)
|
|
if (c(1) /= 3) stop 1
|
|
m = (/ .true., .false., .true., .true., .true., .true. /)
|
|
n = .true.
|
|
b = 2.
|
|
c = findloc (a, b, m)
|
|
if (c(1) /= 4) stop 2
|
|
c = findloc (a, b, n)
|
|
if (c(1) /= 2) stop 3
|
|
d = reshape((/ 1., 2., 2., 3. /), (/ 2, 2 /))
|
|
e = findloc (d, b, 1)
|
|
if (e(1) /= 2 .or. e(2) /= 1) stop 4
|
|
o = reshape((/ .true., .false., .true., .true. /), (/ 2, 2 /))
|
|
e = findloc (d, b, 1, o)
|
|
if (e(1) /= 0 .or. e(2) /= 1) stop 5
|
|
e = findloc (d, b, 1, n)
|
|
if (e(1) /= 2 .or. e(2) /= 1) stop 6
|
|
n = .false.
|
|
e = findloc (d, b, 1, n)
|
|
if (e(1) /= 0 .or. e(2) /= 0) stop 7
|
|
end
|