------- 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