| ! { dg-do run } |
| ! { dg-options "-finit-integer=101" } |
| |
| program init_flag_7 |
| call save_test1 (.true.) |
| call save_test1 (.false.) |
| call save_test2 (.true.) |
| call save_test2 (.false.) |
| end program init_flag_7 |
| |
| ! Test some initializations for both implicitly and |
| ! explicitly declared local variables. |
| subroutine save_test1 (first) |
| logical first |
| integer :: i1 = -100 |
| integer i2 |
| integer i3 |
| save i2 |
| if (first) then |
| if (i1 .ne. -100) STOP 1 |
| if (i2 .ne. 101) STOP 2 |
| if (i3 .ne. 101) STOP 3 |
| else |
| if (i1 .ne. 1001) STOP 4 |
| if (i2 .ne. 1002) STOP 5 |
| if (i3 .ne. 101) STOP 6 |
| end if |
| i1 = 1001 |
| i2 = 1002 |
| i3 = 1003 |
| end subroutine save_test1 |
| |
| subroutine save_test2 (first) |
| logical first |
| integer :: i1 = -100 |
| integer i2 |
| save |
| if (first) then |
| if (i1 .ne. -100) STOP 7 |
| if (i2 .ne. 101) STOP 8 |
| else |
| if (i1 .ne. 1001) STOP 9 |
| if (i2 .ne. 1002) STOP 10 |
| end if |
| i1 = 1001 |
| i2 = 1002 |
| end subroutine save_test2 |