Hello maintainers: Please help check this patch when you have time, thanks.
BTW: one linux kernel member found a gcc issue for the latest version (4.10.0 20140622 or later), but for old version (e.g. 4.10.0 2014060*), it is OK. It is my chance to fix it (hope can finish within 2014-06-30). Also sorry for I have lost a chance to fix a issue about h8300, because it is never used for linux main line, it is beyond my border (I have no enough time resource on it), at present. Thanks. On 06/17/2014 09:00 AM, Chen Gang wrote: > dw2_asm_output_vms_delta() calls dw2_asm_output_delta() in an abnormal > way, so need add a new function just like vprintf() for printf(), and > then the related call will be in normal way. > > The related warning: > > ../../gcc/gcc/dwarf2asm.c: In function ‘void dw2_asm_output_vms_delta(int, > const char*, const char*, const char*, ...)’: > ../../gcc/gcc/dwarf2asm.c:167:50: warning: format not a string literal and > no format arguments [-Wformat-security] > > > Signed-off-by: Chen Gang <gang.chen.5...@gmail.com> > --- > gcc/ChangeLog | 6 ++++++ > gcc/dwarf2asm.c | 21 +++++++++++++-------- > 2 files changed, 19 insertions(+), 8 deletions(-) > > diff --git a/gcc/ChangeLog b/gcc/ChangeLog > index edb3fc0..01a1cc1 100644 > --- a/gcc/ChangeLog > +++ b/gcc/ChangeLog > @@ -1,3 +1,9 @@ > +2014-06-14 Chen Gang <gang.chen.5...@gmail.com> > + > + * dwarf2asm.c (dw2_asm_output_delta): Add dw2_asm_voutput_delta() for > + dw2_asm_output_delta(), just like vprintf() for printf(), so that > + dw2_asm_output_vms_delta() can use it in normal way. > + > 2014-06-13 Vladimir Makarov <vmaka...@redhat.com> > > * lra-assign.c (assign_by_spills): Add code to assign vector regs > diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c > index 1372b23..376b939 100644 > --- a/gcc/dwarf2asm.c > +++ b/gcc/dwarf2asm.c > @@ -123,14 +123,10 @@ dw2_asm_output_data (int size, unsigned HOST_WIDE_INT > value, > impossible to do here, since the ASM_SET_OP for the difference > symbol must appear after both symbols are defined. */ > > -void > -dw2_asm_output_delta (int size, const char *lab1, const char *lab2, > - const char *comment, ...) > +static void > +dw2_asm_voutput_delta (int size, const char *lab1, const char *lab2, > + const char *comment, va_list ap) > { > - va_list ap; > - > - va_start (ap, comment); > - > #ifdef ASM_OUTPUT_DWARF_DELTA > ASM_OUTPUT_DWARF_DELTA (asm_out_file, size, lab1, lab2); > #else > @@ -145,7 +141,16 @@ dw2_asm_output_delta (int size, const char *lab1, const > char *lab2, > vfprintf (asm_out_file, comment, ap); > } > fputc ('\n', asm_out_file); > +} > > +void > +dw2_asm_output_delta (int size, const char *lab1, const char *lab2, > + const char *comment, ...) > +{ > + va_list ap; > + > + va_start (ap, comment); > + dw2_asm_voutput_delta (size, lab1, lab2, comment, ap); > va_end (ap); > } > > @@ -164,7 +169,7 @@ dw2_asm_output_vms_delta (int size ATTRIBUTE_UNUSED, > #ifndef ASM_OUTPUT_DWARF_VMS_DELTA > /* VMS Delta is only special on ia64-vms, but this function also gets > called on alpha-vms so it has to do something sane. */ > - dw2_asm_output_delta (size, lab1, lab2, comment); > + dw2_asm_voutput_delta (size, lab1, lab2, comment, ap); > #else > ASM_OUTPUT_DWARF_VMS_DELTA (asm_out_file, size, lab1, lab2); > if (flag_debug_asm && comment) > -- Chen Gang Open share and attitude like air water and life which God blessed