diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/allocatable_scalar_12.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/allocatable_scalar_12.f90 | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/allocatable_scalar_12.f90 b/gcc/testsuite/gfortran.dg/allocatable_scalar_12.f90 new file mode 100644 index 000000000..eade363ea --- /dev/null +++ b/gcc/testsuite/gfortran.dg/allocatable_scalar_12.f90 @@ -0,0 +1,30 @@ +! { dg-do run } +! +! PR fortran/47421 +! +! Don't auto-deallocatable scalar character allocatables. +! +implicit none +character(len=5), allocatable :: str +allocate(str) +str = '1bcde' +if(str /= '1bcde') call abort() +call sub(str,len(str)) +if(str /= '1bcde') call abort() +call subOUT(str,len(str)) +if (len(str) /= 5) call abort() +if(allocated(str)) call abort() +contains + subroutine sub(x,n) + integer :: n + character(len=n), allocatable :: x + if(len(x) /= 5) call abort() + if(x /= '1bcde') call abort() + end subroutine sub + subroutine subOUT(x,n) + integer :: n + character(len=n), allocatable,intent(out) :: x + if(allocated(x)) call abort() + if(len(x) /= 5) call abort() + end subroutine subOUT +end |