From: Tobias Schlüter Date: Sun, 16 Jan 2005 17:44:17 +0000 (+0000) Subject: re PR fortran/19182 (Error messages seem to be printed slower) X-Git-Tag: releases/gcc-4.0.0~1530 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dfbb43185db4da6c588f8166e5a2a2be296a30b7;p=thirdparty%2Fgcc.git re PR fortran/19182 (Error messages seem to be printed slower) 2005-01-16 Tobias Schlueter PR fortran/19182 * error.c (error_char): Line-buffer errors / warnings. From-SVN: r93734 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index d90e50eb4500..01687ef236a6 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2005-01-16 Tobias Schlueter + + PR fortran/19182 + * error.c (error_char): Line-buffer errors / warnings. + 2005-01-16 Tobias Schlueter * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed / diff --git a/gcc/fortran/error.c b/gcc/fortran/error.c index 7f0b57ca02f4..a8eae5641237 100644 --- a/gcc/fortran/error.c +++ b/gcc/fortran/error.c @@ -86,7 +86,20 @@ error_char (char c) else { if (c != 0) - fputc (c, stderr); + { + /* We build up complete lines before handing things + over to the library in order to speed up error printing. */ + static char line[MAX_ERROR_MESSAGE + 1]; + static int index = 0; + + line[index++] = c; + if (c == '\n' || index == MAX_ERROR_MESSAGE) + { + line[index] = '\0'; + fputs (line, stderr); + index = 0; + } + } } }