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 + -
显示快捷键?