OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gfortran.dg/] [pr17612.f90] - Diff between revs 149 and 154

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
! { dg-do run }
! { dg-do run }
! PR 17612
! PR 17612
! We used to not determine the length of character-valued expressions
! We used to not determine the length of character-valued expressions
! correctly, leading to a segfault.
! correctly, leading to a segfault.
program prog
program prog
  character(len=2), target :: c(4)
  character(len=2), target :: c(4)
  type pseudo_upf
  type pseudo_upf
     character(len=2), pointer :: els(:)
     character(len=2), pointer :: els(:)
  end type pseudo_upf
  end type pseudo_upf
  type (pseudo_upf) :: p
  type (pseudo_upf) :: p
  type t
  type t
    character(5) :: s(2)
    character(5) :: s(2)
  end type
  end type
  type (t) v
  type (t) v
  ! A full arrays.
  ! A full arrays.
  c = (/"ab","cd","ef","gh"/)
  c = (/"ab","cd","ef","gh"/)
  call n(p)
  call n(p)
  if (any (c /= p%els)) call abort
  if (any (c /= p%els)) call abort
  ! An array section that needs a new array descriptor.
  ! An array section that needs a new array descriptor.
  v%s(1) = "hello"
  v%s(1) = "hello"
  v%s(2) = "world"
  v%s(2) = "world"
  call test (v%s)
  call test (v%s)
contains
contains
  subroutine n (upf)
  subroutine n (upf)
    type (pseudo_upf), intent(inout) :: upf
    type (pseudo_upf), intent(inout) :: upf
    upf%els => c
    upf%els => c
    return
    return
  end subroutine n
  end subroutine n
  subroutine test(s)
  subroutine test(s)
    character(len=*) :: s(:)
    character(len=*) :: s(:)
    if ((len (s) .ne. 5) .or. (any (s .ne. (/"hello", "world"/)))) call abort
    if ((len (s) .ne. 5) .or. (any (s .ne. (/"hello", "world"/)))) call abort
  end subroutine
  end subroutine
end program
end program
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.