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)) call abort ()
18      allocate (a)
19    else if (no == 1) then
20      if (.not. allocated (a)) call abort ()
21      deallocate (a)
22    else
23      if (allocated (a)) call abort ()
24    end if
25  end subroutine sub
26end program test
27