1! { dg-do run } 2! { dg-options "-O2 -fno-automatic" } 3 subroutine foo (b) 4 logical b 5 integer i, j 6 character*24 s 7 save i 8 if (b) then 9 i = 26 10 j = 131 11 s = 'This is a test string' 12 else 13 if (i .ne. 26 .or. j .ne. 131) call abort 14 if (s .ne. 'This is a test string') call abort 15 end if 16 end subroutine foo 17 subroutine bar (s) 18 character*42 s 19 if (s .ne. '0123456789012345678901234567890123456') call abort 20 call foo (.false.) 21 end subroutine bar 22 subroutine baz 23 character*42 s 24 ! Just clobber stack a little bit. 25 s = '0123456789012345678901234567890123456' 26 call bar (s) 27 end subroutine baz 28 call foo (.true.) 29 call baz 30 call foo (.false.) 31 end 32