------- Comment #2 from burnus at gcc dot gnu dot org 2006-12-13 19:47 ------- Simplified version (might not cover all problems): character(len=20) myfmt myfmt="(1X,a,'x')" WRITE(*,fmt=trim(myfmt)) "y" END
If one looks now at the dump: _gfortran_string_trim (&len.2, (void * *) &pstr.1, 20, &myfmt); dt_parm.0.format = pstr.1; dt_parm.0.format_len = len.2; _gfortran_st_write (&dt_parm.0); _gfortran_internal_free (pstr.1); _gfortran_transfer_character (&dt_parm.0, "y", 1); _gfortran_st_write_done (&dt_parm.0); I'm not sure whether this is the problem, but pstr.1 is freed before "y" is send to "write" - but the string has to be written after "y". -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |wrong-code Last reconfirmed|0000-00-00 00:00:00 |2006-12-13 19:47:50 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30200