binding_label_tests.f03

来自「用于进行gcc测试」· F03 代码 · 共 78 行

F03
78
字号
! { dg-do compile }module binding_label_tests  use, intrinsic :: iso_c_binding  implicit none  contains  subroutine c_sub() BIND(c, name = "C_Sub")    print *, 'hello from c_sub'  end subroutine c_sub  integer(c_int) function c_func() bind(C, name="__C_funC")    print *, 'hello from c_func'    c_func = 1  end function c_func  real(c_float) function f90_func()     print *, 'hello from f90_func'    f90_func = 1.0  end function f90_func  real(c_float) function c_real_func() bind(c)    print *, 'hello from c_real_func'    c_real_func = 1.5  end function c_real_func  integer function f90_func_0() result ( f90_func_0_result )     print *, 'hello from f90_func_0'    f90_func_0_result = 0  end function f90_func_0  integer(c_int) function f90_func_1() result ( f90_func_1_result ) bind(c, name="__F90_Func_1__")    print *, 'hello from f90_func_1'    f90_func_1_result = 1  end function f90_func_1  integer(c_int) function f90_func_3() result ( f90_func_3_result ) bind(c)    print *, 'hello from f90_func_3'    f90_func_3_result = 3  end function f90_func_3  integer(c_int) function F90_func_2() bind(c) result ( f90_func_2_result )     print *, 'hello from f90_func_2'    f90_func_2_result = 2  end function f90_func_2  integer(c_int) function F90_func_4() bind(c, name="F90_func_4") result ( f90_func_4_result )     print *, 'hello from f90_func_4'    f90_func_4_result = 4  end function f90_func_4  integer(c_int) function F90_func_5() bind(c, name="F90_func_5") result ( f90_func_5_result )     print *, 'hello from f90_func_5'    f90_func_5_result = 5  end function f90_func_5  subroutine c_sub_2() bind(c, name='c_sub_2')    print *, 'hello from c_sub_2'  end subroutine c_sub_2  subroutine c_sub_3() BIND(c, name = "  C_Sub_3  ")    print *, 'hello from c_sub_3'  end subroutine c_sub_3  subroutine c_sub_5() BIND(c, name = "C_Sub_5        ")    print *, 'hello from c_sub_5'  end subroutine c_sub_5  ! nothing between the quotes except spaces, so name="".  ! the name will get set to the regularly mangled version of the name.    ! perhaps it should be marked with some characters that are invalid for   ! C names so C can not call it?  subroutine sub4() BIND(c, name = "        ")   end subroutine sub4 end module binding_label_tests! { dg-final { cleanup-modules "binding_label_tests" } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?