1! { dg-do run }
2!
3! PR fortran/47421
4!
5! Don't auto-deallocatable scalar character allocatables.
6!
7implicit none
8character(len=5), allocatable :: str
9allocate(str)
10str = '1bcde'
11if(str /= '1bcde') call abort()
12call sub(str,len(str))
13if(str /= '1bcde') call abort()
14call subOUT(str,len(str))
15if (len(str) /= 5) call abort()
16if(allocated(str)) call abort()
17contains
18  subroutine sub(x,n)
19     integer :: n
20     character(len=n), allocatable :: x
21     if(len(x) /= 5) call abort()
22     if(x /= '1bcde') call abort()
23  end subroutine sub
24  subroutine subOUT(x,n)
25     integer :: n
26     character(len=n), allocatable,intent(out) :: x
27     if(allocated(x)) call abort()
28     if(len(x) /= 5) call abort()
29  end subroutine subOUT
30end
31