summaryrefslogtreecommitdiff
path: root/gcc/c-format.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2005-07-19 12:09:49 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2005-07-19 12:09:49 +0000
commit7876a41423b46245f7eec641217c8330ded8734a (patch)
treedca43bd0a0db3df3cbcc88768c895067aa836aba /gcc/c-format.c
parent98ea74375f446196ce2ff7a3d5f7f9587b3ced52 (diff)
downloadgcc-7876a41423b46245f7eec641217c8330ded8734a.tar.gz
re PR c++/22476 (-Wmissing-format-attribute should pick out function pointer candidates also)
PR c/22476 * c-common.c (check_function_arguments): Call 'check_function_format' if either -Wformat or -Wmissing-format-attribute are specified. * c-format.c (check_function_format): Check -Wformat before calling 'check_format_info'. * c-opts.c (c_common_post_options): Don't warn for -Wmissing-format-attribute without -Wformat. * c-typeck.c (convert_for_assignment): Detect additional cases for -Wmissing-format-attribute. * doc/invoke.texi (-Wmissing-format-attribute): Document new behavior. testsuite: * gcc.dg/format/miss-1.c, gcc.dg/format/miss-2.c: Don't specify -Wformat for these tests. * gcc.dg/format/miss-3.c, gcc.dg/format/miss-4.c, gcc.dg/format/miss-5.c, gcc.dg/format/miss-6.c: New. * gcc.dg/format/opt-6.c: Delete. From-SVN: r102155
Diffstat (limited to 'gcc/c-format.c')
-rw-r--r--gcc/c-format.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/c-format.c b/gcc/c-format.c
index 10a5f21db59..587f15e9c6b 100644
--- a/gcc/c-format.c
+++ b/gcc/c-format.c
@@ -864,7 +864,8 @@ check_function_format (tree attrs, tree params)
/* Yup; check it. */
function_format_info info;
decode_format_attr (TREE_VALUE (a), &info, 1);
- check_format_info (&info, params);
+ if (warn_format)
+ check_format_info (&info, params);
if (warn_missing_format_attribute && info.first_arg_num == 0
&& (format_types[info.format_type].flags
& (int) FMT_FLAG_ARG_CONVERT))