character_array_constructor_1.f90

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

F90
48
字号
! { dg-do run }! Tests the fix for PR27113, in which character structure! components would produce the TODO compilation error "complex! character array constructors".!! Test based on part of tonto-2.2;! Contributed by Paul Thomas  <pault@gcc.gnu.org>!  type BASIS_TYPE    character(len=8) :: label  end type  type(BASIS_TYPE), dimension(:), pointer :: ptr  character(8), dimension(2) :: carray  allocate (ptr(2))  ptr(1)%label = "Label 1"  ptr(2)%label = "Label 2"! This is the original bug  call read_library_data_((/ptr%label/))  carray(1) = "Label 3"  carray(2) = "Label 4"! Mix a character array with the character component of a derived type pointer array.  call read_library_data_((/carray, ptr%label/))! Finally, add a constant (character(8)).  call read_library_data_((/carray, ptr%label, "Label 5 "/))contains  subroutine read_library_data_ (chr)    character(*), dimension(:) :: chr    character(len = len(chr)) :: tmp    if (size(chr,1) == 2) then      if (any (chr .ne. (/"Label 1", "Label 2"/))) call abort ()    elseif (size(chr,1) == 4) then      if (any (chr .ne. (/"Label 3", "Label 4","Label 1", "Label 2"/))) call abort ()    elseif (size(chr,1) == 5) then      if (any (chr .ne. (/"Label 3", "Label 4","Label 1", "Label 2", "Label 5"/))) &          call abort ()    end if  end subroutine read_library_data_end

⌨️ 快捷键说明

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