summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/f2c_7.f90
blob: d67e10bc2c7c5629c633d0402500f7a09e7d5068 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
! { dg-do run }
! { dg-options "-ff2c" }
! Verifies that array results work with -ff2c
! try all permutations of result clause in function yes/no
!                     and result clause in interface yes/no
! this is not possible in Fortran 77, but this exercises a previously
! buggy codepath
function c() result (r)
  complex :: r(5)
  r = 0.
end function c

function d()
  complex :: d(5)
  d = 1.
end function d

subroutine test_without_result
interface
   function c ()
     complex :: c(5)
   end function c
end interface
interface
   function d ()
     complex :: d(5)
   end function d
end interface
complex z(5)
z = c()
if (any(z /= 0.)) call abort ()
z = d()
if (any(z /= 1.)) call abort ()
end subroutine test_without_result

subroutine test_with_result
interface
   function c () result(r)
     complex :: r(5)
   end function c
end interface
interface
   function d () result(r)
     complex :: r(5)
   end function d
end interface
complex z(5)
z = c()
if (any(z /= 0.)) call abort ()
z = d()
if (any(z /= 1.)) call abort ()
end subroutine test_with_result

call test_without_result
call test_with_result
end