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 | 23 +++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index edb3fc0..0e1df0e 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 static_output_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..69733b3 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 +static_output_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,18 @@ 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); + static_output_delta(size, lab1, lab2, comment, ap); va_end (ap); } @@ -164,7 +171,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); + static_output_delta (size, lab1, lab2, comment, ap); #else ASM_OUTPUT_DWARF_VMS_DELTA (asm_out_file, size, lab1, lab2); if (flag_debug_asm && comment) -- 1.9.2.459.g68773ac