Lewis Hyatt via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> On Thu, Jul 23, 2020 at 05:47:28PM -0400, David Malcolm wrote:
>> On Thu, 2020-07-23 at 12:28 -0400, Lewis Hyatt via Gcc-patches wrote:
>> > Hello-
>> > 
>> > The attached patch is complete including docs, but I tagged as RFC
>> > because I am not sure if anyone will like it, or if the general
>> > reaction may
>> > be closer to recoiling in horror :). Would appreciate your thoughts,
>> > please...
>> 
>> Thanks for working on this.  I'm interested in other people's thoughts
>> on this.  Various comments inline throughout below.

+1 in favour FWIW.

> […]
> By the way, I was wondering separately what you think about adding an option
> like -fplain-diagnostics or something, which would achieve basically the same
> thing you get in the testsuite right now (-fno-diagnostics-show-caret
> -fno-diagnostics-show-line-numbers -fdiagnostics-color=never
> -fdiagnostics-urls=never) but would change as necessary whenever diagnostics
> evolve. It seems rather involved currently to add a new option like
> -fdiagnostics-unicode-drawing but keep the testsuite working, in addition to
> adding to prune.exp and to the libstdc++.exp, you also need to update the
> compat.exp so that it can figure out to pass the option only to sufficiently
> new compilers. With -fplain-diagnostics, this could just be part of the code
> change and the testsuite could stay the same; this may also make it easier on
> IDE type utilities since they could rely on a more stable format for the
> diagnostics, assuming they don't already use JSON format.

Also agree that this would be a nice feature to have.  I guess it would
act as an alias for all the -fno-* options at the point that it occurs
on the command line, so that it would be possible to use:

  -fplain-diagnostics -fthe-diagnostic-feature-i-like

> […]
>> * maybe have a different character for separating the line numbers as
>> opposed to those for labels and for showing interprocedural paths.
>>
>
> Something like that would be easy to add, sure, perhaps a double vertical line
> instead:
>
> diagnostic-ranges.c:196:28: warning: field width specifier ‘*’ expects 
> argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   196 ║   __builtin_sprintf (d, " %*ld ", foo + bar, foo);
>       ║                           ═∧══    ════╤════
>       ║                            │          │
>       ║                            int        long int

Guess it's just personal taste, but that seems a bit too busy to me.
Most diagnostics don't have interprocedural paths, and on its own,
there doesn't seem to be a specific reason to have a double line
on the left.

Thanks,
Richard

Reply via email to