OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [gfortran.dg/] [f2c_4.f90] - Blame information for rev 12

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 jlechner
! { dg-do run }
2
! { dg-additional-sources f2c_4.c }
3
! { dg-options "-ff2c -w" }
4
 
5
! Check -ff2c calling conventions
6
!   Return value of REAL function is promoted to C type double
7
!   Return value of COMPLEX function is via an extra argument in the
8
!    calling sequence that points to where to store the return value
9
!   Addional underscore appended to function name
10
program f2c_4
11
  complex c, f2c_4k, f2c_4l
12
  double complex z, f2c_4m, f2c_4n
13
  integer i
14
 
15
  ! Promotion of REAL function
16
  call f2c_4a()
17
 
18
  ! Return COMPLEX arg - call Fortran routines from C
19
  call f2c_4c()
20
  call f2c_4e()
21
  call f2c_4g()
22
  call f2c_4i()
23
 
24
  !  Return COMPLEX arg - call C routines from Fortran
25
  c = cmplx(1234.0,5678.0)
26
  z = dcmplx(1234.0d0,5678.0d0)
27
  if ( c .ne. f2c_4k(c) )   call abort
28
  if ( c .ne. f2c_4l(i,c) ) call abort
29
  if ( z .ne. f2c_4m(z) )   call abort
30
  if ( z .ne. f2c_4n(i,z) ) call abort
31
 
32
end
33
 
34
real function f2c_4b(x)
35
  double precision x
36
  f2c_4b = x
37
end
38
 
39
complex function f2c_4d(x)
40
  complex x
41
  f2c_4d = x
42
end
43
 
44
complex function f2c_4f(i,x)
45
  complex x
46
  integer i
47
  f2c_4f = x
48
end
49
 
50
double complex function f2c_4h(x)
51
  double complex x
52
  f2c_4h = x
53
end
54
 
55
double complex function f2c_4j(i,x)
56
  double complex x
57
  f2c_4j = x
58
end

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.