1! { dg-do run }
2! { dg-options "-finit-integer=101" }
3
4program init_flag_7
5  call save_test1 (.true.)
6  call save_test1 (.false.)
7  call save_test2 (.true.)
8  call save_test2 (.false.)
9end program init_flag_7
10
11! Test some initializations for both implicitly and
12! explicitly declared local variables.
13subroutine save_test1 (first)
14  logical first
15  integer :: i1 = -100
16  integer i2
17  integer i3
18  save i2
19  if (first) then
20     if (i1 .ne. -100) STOP 1
21     if (i2 .ne. 101) STOP 2
22     if (i3 .ne. 101) STOP 3
23  else
24     if (i1 .ne. 1001) STOP 4
25     if (i2 .ne. 1002) STOP 5
26     if (i3 .ne. 101) STOP 6
27  end if
28  i1 = 1001
29  i2 = 1002
30  i3 = 1003
31end subroutine save_test1
32
33subroutine save_test2 (first)
34  logical first
35  integer :: i1 = -100
36  integer i2
37  save
38  if (first) then
39     if (i1 .ne. -100) STOP 7
40     if (i2 .ne. 101) STOP 8
41  else
42     if (i1 .ne. 1001) STOP 9
43     if (i2 .ne. 1002) STOP 10
44  end if
45  i1 = 1001
46  i2 = 1002
47end subroutine save_test2
48