char_result_11.f90

来自「用于进行gcc测试」· F90 代码 · 共 118 行

F90
118
字号
! { dg-do link }! PR 23675: Character function of module-variable length! PR 25716: Implicit kind conversions in in expressions written to *.mod-files.module cutils    implicit none    private       type t        integer :: k = 25        integer :: kk(3) = (/30, 40, 50 /)    end type t    integer :: m1 = 25, m2 = 25, m3 = 25, m4 = 25, m5 = 25    integer :: n5 = 3, n7 = 3, n9 = 3    integer(1) :: n1 = 3, n2 = 3, n3 = 3, n4 = 3, n6 = 3, n8 = 3    character(10) :: s = "abcdefghij"    integer :: x(4) = (/ 30, 40, 50, 60 /)    type(t), save :: tt1(5), tt2(5)    public :: IntToChar1, IntToChar2, IntToChar3, IntToChar4, IntToChar5, &                IntToChar6, IntToChar7, IntToChar8contains    pure integer function get_k(tt)        type(t), intent(in) :: tt        get_k = tt%k    end function get_k     function IntToChar1(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=m1)  :: a         write(a, *) integerValue    end function IntToChar1     function IntToChar2(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=m2+n1)  :: a         write(a, *) integerValue    end function IntToChar2     function IntToChar3(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=iachar(s(n2:n3)))  :: a         write(a, *) integerValue    end function IntToChar3     function IntToChar4(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=tt1(n4)%k)  :: a         write(a, *) integerValue    end function IntToChar4     function IntToChar5(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=maxval((/m3, n5/)))  :: a         write(a, *) integerValue    end function IntToChar5     function IntToChar6(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=x(n6))  :: a         write(a, *) integerValue    end function IntToChar6     function IntToChar7(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=tt2(min(m4, n7, 2))%kk(n8))  :: a             write(a, *) integerValue    end function IntToChar7     function IntToChar8(integerValue) result(a)        integer, intent(in) :: integerValue        character(len=get_k(t(m5, (/31, n9, 53/))))  :: a         write(a, *) integerValue    end function IntToChar8end module cutilsprogram test    use cutils    implicit none    character(25) :: str        str = IntToChar1(3)    print *, str    str = IntToChar2(3)    print *, str    str = IntToChar3(3)    print *, str    str = IntToChar4(3)    print *, str    str = IntToChar5(3)    print *, str    str = IntToChar6(3)    print *, str    str = IntToChar7(3)    print *, str    str = IntToChar8(3)    print *, strend program test! { dg-final { cleanup-modules "cutils" } }

⌨️ 快捷键说明

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