summaryrefslogtreecommitdiffstats
path: root/toolchain/gcc/4.2/900-gengtype-verbose-error.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/gcc/4.2/900-gengtype-verbose-error.patch')
-rw-r--r--toolchain/gcc/4.2/900-gengtype-verbose-error.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/toolchain/gcc/4.2/900-gengtype-verbose-error.patch b/toolchain/gcc/4.2/900-gengtype-verbose-error.patch
new file mode 100644
index 000000000..119c00b9a
--- /dev/null
+++ b/toolchain/gcc/4.2/900-gengtype-verbose-error.patch
@@ -0,0 +1,27 @@
+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;