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]

Re: [PATCH] Caret diagnostics


On Tue, Apr 10, 2012 at 1:33 PM, Manuel López-Ibáñez
<lopezibanez@gmail.com> wrote:
> On 10 April 2012 21:41, Manuel López-Ibáñez <lopezibanez@gmail.com> wrote:
>> On 10 April 2012 21:31, Jason Merrill <jason@redhat.com> wrote:
>>> On 04/10/2012 12:46 PM, Manuel López-Ibáñez wrote:
>>>>
>>>> + ?max_width = context->caret_max_width;
>>>> + ?if (max_width<= 0)
>>>> + ? ?max_width = INT_MAX;
>>>
>>>
>>> I don't think we need the test here; diagnostic_set_caret_max_width should
>>> make sure caret_max_width is set sensibly. ?Otherwise, yes, thanks.
>>
>> It was just a bit of defensive programming, since nothing stops anyone
>> to set the value directly. But I will remove it.
>>
>>> On 04/10/2012 02:52 PM, Gabriel Dos Reis wrote:
>>>>
>>>> There is a novelty in this new version that I don't think we discussed
>>>> before: automatic expansion of tabs to 8 hard space characters. ?That
>>>> number should not be hardcoded as there is no reason to believe a tab
>>>> character always expands to 8 space characters. ?You should check
>>>> the environment first; if not present the default expansion number should
>>>> be a symbolic constant as opposed to a magic number sprinkled all over the
>>>> places.
>>>
>>>
>>> Hmm. ?I don't know if there's any reliable way to query tab stops; the "it"
>>> termcap/terminfo capability tells you what it was originally (presumably 8),
>>> but it might have changed.
>>
>> No idea either, but it is in fact easier to print tabs a single
>> spaces. This simplifies the code a lot, as pointed by Gabriel. So if
>> you also prefer the simpler version, I am fine with committing that
>> one (it also saves space in the output).
>
> A new version of the patch. It removes the special handling of tabs.
> And abstracts out the adjusting of the line as Gabriel suggested. I am
> not sure what else could be abstracted out. The function is much
> shorter than other functions in diagnostic.c.
>
> This patch builds and I am running a full boostrap+check now.
>
> OK if it passes?
>
> Cheers,
>
> Manuel.
>
>
> 2012-04-05 ?Manuel López-Ibáñez ?<manu@gcc.gnu.org>
>
> ? ? ? ?PR 24985
> libstdc++-v3/
> ? ? ? ?* testsuite/lib/prune.exp: Handle caret.
> libmudflap/
> ? ? ? ?* testsuite/lib/libmudflap.exp: Handle caret.
> gcc/
> ? ? ? ?* diagnostic.h (show_caret): Declare.
> ? ? ? ?(caret_max_width): Declare.
> ? ? ? ?(diagnostic_show_locus): Declare.
> ? ? ? ?* diagnostic.c (diagnostic_initialize): Initialize to false.
> ? ? ? ?(diagnostic_show_locus): New.
> ? ? ? ?(diagnostic_report_diagnostic): Call it.
> ? ? ? ?(getenv_columns): New.
> ? ? ? ?(adjust_line): New.
> ? ? ? ?(diagnostic_set_caret_max_width): New.
> ? ? ? ?* input.c (read_line): New.
> ? ? ? ?(location_get_source_line): New.
> ? ? ? ?* input.h (location_get_source_line): Declare.
> ? ? ? ?* toplev.c (general_init): Initialize show_caret from options.
> ? ? ? ?* dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
> ? ? ? ?* opts.c (common_handle_option): Likewise.
> ? ? ? ?* pretty-print.h (pp_get_prefix): New.
> ? ? ? ?(pp_base_get_prefix): New.
> ? ? ? ?* common.opt (fdiagnostics-show-caret): New option.
> ? ? ? ?* doc/invoke.texi (fdiagnostics-show-caret): Document it.
> testsuite/
> ? ? ? ?* lib/prune.exp: Add -fno-diagnostics-show-caret.

It breaks library tests:

ERROR: tcl error sourcing
../../../../src-trunk/boehm-gc/testsuite/../../gcc/testsuite/lib/prune.exp.
ERROR: tcl error sourcing
../../../../src-trunk/libgomp/testsuite/../../gcc/testsuite/lib/prune.exp.
ERROR: tcl error sourcing
../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp.

RROR: tcl error sourcing
../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp.
can't read "TEST_ALWAYS_FLAGS": no such variable
    while executing
"set TEST_ALWAYS_FLAGS "-fno-diagnostics-show-caret $TEST_ALWAYS_FLAGS""
    (file "../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp"
line 20)
    invoked from within
"source ../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 source
../../../../src-trunk/libitm/testsuite/../../gcc/testsuite/lib/prune.exp"
    invoked from within
"catch "uplevel #0 source $file""
make[8]: *** [check-DEJAGNU] Error 1

-- 
H.J.


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