Subject: bug#62560: 28.2; compile-mode misidentifies compiler output

From: Eli Zaretskii <[email-masked]>
Date: Fri, 31 Mar 2023 09:09:12 +0300

> From: Tom Tromey <[email-masked]>
> Date: Thu, 30 Mar 2023 23:37:43 -0600
> 
> 
> Put the text between the "===" lines into a file, say /tmp/F.
> Then M-x compile and for the compile command use "cat /tmp/F".
> 
> For me, the "| ... unsigned char :3" lines are partly highlighted as if
> they are error messages, and next-error will erroneously try to select
> these.
> 
> These lines occur because gcc prints some of the source code in the
> error message.  I think Emacs should not treat them as if they explain
> the location of an error.

Any idea how to accomplish that, given that GCC emits unformatted and
unstructured text?  We could complicate the heck out of our regexps,
but theoretically a compiler could emit an error message that quotes
text that looks exactly as warning/error message, and what do we do
then?

Are there any developments in compilers to produce structured text,
like JSON or XML?  If so, it is probably better for us to use that
when available, because otherwise I see no way of solving these cases
100%.