This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC PATCH fortran/diagnostics] Move gfc_error (buffered) to common diagnostics


I separated the diagnostics and fortran parts in two patches. This is a RFC to:

* Dodji: I needed to make diagnostic_action_after_output external. I
also added a few functions that take directly an output_buffer. I
could implement the latter by just changing the output_buffer in the
pretty-printer, then calling the existing equivalent pretty-printer
functions, then reverting back the output_buffer of the
pretty-printer, but that looks quite messy and wasteful. Would this be
ok for stage3? If not, I will probably then use the ugly way instead
of waiting, since the Fortran devs are very keen in completing the
transition as much as possible for GCC 5.0.

* Tobias or other Fortran maintainers. The only test failing is
gfortran.dg/do_iterator.f90 line 7. The old code gives an Error there,
which the new one does not.

/home/manuel/test1/pristine/gcc/testsuite/gfortran.dg/do_iterator.f90:7.9:

   READ(5,*) I ! { dg-error "cannot be redefined" "changing do-iterator 2" }
         1
Error: Invalid character in name at (1)

It seems that the gfc_error above is buffered first, then it is
cleared, however, the old code does not actually clear the text only
clears error_buffer.flag, then a gfc_error_now is emitted, which sets
error_buffer.flag (?!), the next gfc_error_check then emits the text
that was still in the buffer. Is this intended to work like this? If
so, then this patch needs more work.

(Tobias, there are some cleanups in the fortran patch in error.c to
use 'bool' more often for some flags and functions. If you want to
apply that already, it will reduce the diff a bit.)

Cheers,

Manuel.

Attachment: gfc_error_diag.diff
Description: Text document

Attachment: gfc_error_fortran.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]