Index: gcc-4.2/gcc/gengtype-lex.l =================================================================== --- gcc-4.2/gcc/gengtype-lex.l (revision 121000) +++ gcc-4.2/gcc/gengtype-lex.l (working copy) @@ -535,13 +535,19 @@ macro_input (char *buffer, unsigned size) { unsigned result; + int old_errno; result = fread (buffer, 1, size, yyin); + old_errno = errno; if (result) /*NOP*/; - else if (ferror (yyin)) - YY_FATAL_ERROR ("read of source file failed"); - else if (macro_expns) + else if (ferror (yyin)) { + char *err_msg; + err_msg = xasprintf ("read of source file '%s:%d' failed", + lexer_line.file, + lexer_line.line); + YY_FATAL_ERROR (err_msg); + } else if (macro_expns) { const char *expn; unsigned len;