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) call abort
21     if (i2 .ne. 101) call abort
22     if (i3 .ne. 101) call abort
23  else
24     if (i1 .ne. 1001) call abort
25     if (i2 .ne. 1002) call abort
26     if (i3 .ne. 101) call abort
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) call abort
40     if (i2 .ne. 101) call abort
41  else
42     if (i1 .ne. 1001) call abort
43     if (i2 .ne. 1002) call abort
44  end if
45  i1 = 1001
46  i2 = 1002
47end subroutine save_test2
48