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.