diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/init_flag_7.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/init_flag_7.f90 | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/init_flag_7.f90 b/gcc/testsuite/gfortran.dg/init_flag_7.f90 new file mode 100644 index 000000000..78829811d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/init_flag_7.f90 @@ -0,0 +1,47 @@ +! { 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) call abort + if (i2 .ne. 101) call abort + if (i3 .ne. 101) call abort + else + if (i1 .ne. 1001) call abort + if (i2 .ne. 1002) call abort + if (i3 .ne. 101) call abort + 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) call abort + if (i2 .ne. 101) call abort + else + if (i1 .ne. 1001) call abort + if (i2 .ne. 1002) call abort + end if + i1 = 1001 + i2 = 1002 +end subroutine save_test2 |