http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50105
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |4.6.2 Summary|Possibly: I/O with g6.5 - |[4.6/4.7 Regression] I/O |wrong number of "**" shown |with g6.5 - wrong number of | |"**" shown --- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-08-19 06:15:56 UTC --- I find the analysis of Malcolm (as usual) convincing, he thinks the correct result is "** ". Thus, I marked it again as regression - and removed the "possibly" from the summary. Malcolm wrote at http://j3-fortran.org/pipermail/j3/2011-August/004594.html | The wording is quite tricky, you need to read it very carefully. | | It says (slight restructuring to make it clearer) | "On output, | (a) if an exponent exceeds its specified or implied width using the ... | G edit descriptor, | or | (b) the number of characters produced exceeds the field width, | [you get stars]" | | The bit that explicitly mentions G ***only applies to the exponent width | being exceeded***. | | That is not the case here. | | What about the number of characters produced? Well, as Robert says, the | F2.5 descriptor produces two characters (both stars) and the 4(' ') | produces another 4, making a total of 6, within the width of G6.5. | | Perhaps this is merely bad wording, but it goes back a long way (F77). And indeed not only gfortran < 4.6.0, g95, NAG and PGI but also g77 produces "** ". (While with gfortran >= 4.6.0, ifort, crayftn/open64/pathf95/sunf95 produce "******".) (We might still see an interpretation request confirming Malcolm's interpretation - or changing the standard such that "******" is correct; only the future will tell ...)