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] |
Hi, This patch moves the location of various Wformat warnings from pointing to the first character of the function name (such as printf) to the actual format string. This is specially useful when you have something like printf (cond ? "format 1" : "format 2"); It also moves (some) of the warnings about too many arguments to the first argument that is unused. Since the format string and/or the arguments might not be expressions or strings, this doesn't always work and then we are back to the status-quo. This is anyway a first step. I have some patches to point within the format string for some cases. This is why I added column markers to testcases even if we don't actually improve the location: it will help us to identify testcases that need updating as the location info improves. Unfortunately, reaching the level of Clang seems well beyond the time I can dedicate to this, so any help would be appreciated. OK for trunk? gcc/c-family/ChangeLog: 2014-08-15 Manuel López-Ibáñez <manu.gnu.org> PR c/52952 * c-format.c: Add extra_arg_loc and format_string_loc to struct format_check_results. (check_function_format): Use true and add comment for boolean argument. (finish_dollar_format_checking): Use explicit location when warning. (check_format_info): Likewise. (check_format_arg): Set extra_arg_loc and format_string_loc. (check_format_info_main): Use explicit location when warning. (check_format_types): Pass explicit location. (format_type_warning): Likewise. gcc/testsuite/ChangeLog: 2014-08-15 Manuel López-Ibáñez <manu.gnu.org> PR c/52952 * gcc.dg/redecl-4.c: Add column markers. * gcc.dg/format/bitfld-1.c: Likewise. * gcc.dg/format/attr-2.c: Likewise. * gcc.dg/format/attr-6.c: Likewise. * gcc.dg/format/array-1.c: Likewise. * gcc.dg/format/attr-7.c: Likewise. * gcc.dg/format/asm_fprintf-1.c: Likewise. * gcc.dg/format/attr-4.c: Likewise. * gcc.dg/format/branch-1.c: Likewise. * gcc.dg/format/c90-printf-1.c: Likewise.
Attachment:
wformat_loc_1.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |