File: external_13.f90

package info (click to toggle)
lfortran 0.60.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,412 kB
  • sloc: cpp: 173,406; f90: 80,491; python: 17,586; ansic: 9,610; yacc: 2,356; sh: 1,401; fortran: 895; makefile: 37; javascript: 15
file content (35 lines) | stat: -rw-r--r-- 960 bytes parent folder | download
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
! Test that external functions with implicit interfaces get underscore mangling
! when --mangle-underscore flag is used.
!
! This test verifies the fix for issue #9473 where --mangle-underscore and
! --all-mangling did not apply to external interface functions (like LAPACK/BLAS).
!
! We define a simple stub to avoid needing actual LAPACK at link time.

module external_mangle_stubs
    implicit none
contains
    subroutine dummy_external_(x) bind(C, name="dummy_external_")
        integer, intent(inout) :: x
        x = x + 1
    end subroutine
end module

program external_mangle_01
    use external_mangle_stubs
    implicit none
    integer :: x

    x = 41

    ! Call external function with implicit interface
    ! With --mangle-underscore, this should generate a call to dummy_external_
    call dummy_external(x)

    if (x == 42) then
        print *, "PASSED"
    else
        print *, "FAILED: x =", x
        error stop
    end if
end program