https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61632
Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-06-27 CC| |jvdelisle at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- program p call ss() call ss() end program p subroutine ss CHARACTER(3), save :: ZTYP(3) DATA ZTYP /'XXX','YYY','ZZZ'/ write(*,600,IOSTAT=iosa) 0.0,ZTYP write(*,*) 'iostat=',iosa if (iosa /= 0) print *, "error" 600 FORMAT(1PE13.5,4X,A3) end subroutine ss gives at run time [Book15] f90/bug% a.out 0.00000E+00 XXX iostat= 5006 error 0.00000E+00 XXX iostat= 5006 error which is right, but also [Book15] f90/bug% a.out 0.00000E+00 XXX iostat= 5006 error 0.00000E+00 XXX Program received signal SIGSEGV: Segmentation fault - invalid memory reference. Backtrace for this error: #0 0x10b4c3892 #1 0x10b4c4030 #2 0x7fff8a4695a9 #3 0x10b581910 #4 0x10b58daf6 #5 0x10b58fd12 #6 0x10b58de05 #7 0x10b4b9cef #8 0x10b4b9dfb #9 0x10b4b9e34 Segmentation fault which is wrong. Note the behavior for "problem 2" is what I expect.