File: unordered_linking.f90

package info (click to toggle)
lfortran 0.59.0-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 56,736 kB
  • sloc: cpp: 168,052; f90: 74,272; python: 17,537; ansic: 7,705; yacc: 2,345; sh: 1,334; fortran: 895; makefile: 37; javascript: 15
file content (24 lines) | stat: -rw-r--r-- 855 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
! This program demonstrates the use of the ISO C binding to call a C function from Fortran.
! It tests the linking of Fortran and C object files in different orders.
! The Fortran program defines an interface for the C 'add' function, which adds two integers.
! The test cases ensure the correct compilation and execution, regardless of the linking order
! between the Fortran and C files, as shown in the corresponding test script.
program unordered_linking
    use iso_c_binding, only: c_int
    implicit none

    interface
        function add(a, b) bind(C)
            import :: c_int
            integer(c_int) :: add
            integer(c_int), value :: a, b
        end function add
    end interface

    integer(c_int) :: a, b, result

    a = 5
    b = 3
    result = add(a, b)
    print *, 'The sum is: ', result
end program unordered_linking