1! { dg-do run }
2!
3! PR fortran/41872
4!
5! Allocatable scalars with SAVE
6!
7program test
8  implicit none
9  call sub (0)
10  call sub (1)
11  call sub (2)
12contains
13  subroutine sub (no)
14    integer, intent(in) :: no
15    integer, allocatable, save :: a
16    if (no == 0) then
17      if (allocated (a)) STOP 1
18      allocate (a)
19    else if (no == 1) then
20      if (.not. allocated (a)) STOP 2
21      deallocate (a)
22    else
23      if (allocated (a)) STOP 3
24    end if
25  end subroutine sub
26end program test
27