auto_char_dummy_array_1.f90

来自「linux下编程用 编译软件」· F90 代码 · 共 57 行

F90
57
字号
! { dg-do run }! This tests the fix for pr15809 in which automatic character length,! dummy, pointer arrays were broken.!! contributed by Paul Thomas  <pault@gcc.gnu.org>!module global  character(12), dimension(2), target :: tend module globalprogram oh_no_not_pr15908_again  character(12), dimension(:), pointer :: ptr  call a (ptr, 12)  if (.not.associated (ptr) ) call abort ()  if (any (ptr.ne."abc")) call abort ()  ptr => null ()              ! ptr points to 't' here.  allocate (ptr(3))  ptr = "xyz"  call a (ptr, 12)  if (.not.associated (ptr)) call abort ()  if (any (ptr.ne."lmn")) call abort ()  call a (ptr, 0)  if (associated (ptr)) call abort ()contains  subroutine a (p, l)    use global    character(l), dimension(:), pointer :: p    character(l), dimension(3)          :: s    s = "lmn"    if (l.ne.12) then      deallocate (p)           ! ptr was allocated in main.      p => null ()      return    end if    if (.not.associated (p)) then      t = "abc"      p => t    else      if (size (p,1).ne.3) call abort ()      if (any (p.ne."xyz")) call abort ()      p = s    end if  end subroutine aend program oh_no_not_pr15908_again

⌨️ 快捷键说明

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