------- Comment #2 from burnus at gcc dot gnu dot org 2008-03-18 22:02 -------
The problem is that we don't properly rewind properly for "nbshapa"; the parser
sees 'n'; it then try whether "NaN" matches. It checks the next character 'b'
and fails. The problem is that only 'b' and not 'nb' are put back:
} /* Match NaN. Up to here, c contains either 'N' or 'n'. */
else if (((c = next_char (dtp)) == 'a' || c == 'A')
&& ((c = next_char (dtp)) == 'n' || c == 'N')
&& (c = next_char (dtp)))
{ ... }
bad:
if (nml_bad_return (dtp, c))
return 0;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35627