diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c-common.c | 4 | ||||
-rw-r--r-- | gcc/c-decl.c | 2 |
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 81b8f62..62fd1f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2000-01-28 Ulrich Drepper <drepper@redhat.com> + + * c-decl.c (c_decode_option): Accept optional numeric argument to + -Wformat and set warn_format. + * c-common.c: Don't emit warning about non-constant printf format + string unless warn_format > 1. + 2000-01-30 Richard Henderson <rth@cygnus.com> * alpha.md (return_internal): Allow after reload only. diff --git a/gcc/c-common.c b/gcc/c-common.c index 1cfb765..c5899e2 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -1529,7 +1529,7 @@ check_format_info (info, params) /* Functions taking a va_list normally pass a non-literal format string. These functions typically are declared with first_arg_num == 0, so avoid warning in those cases. */ - if (info->first_arg_num != 0) + if (info->first_arg_num != 0 && warn_format > 1) warning ("format not a string literal, argument types not checked"); return; } @@ -1541,7 +1541,7 @@ check_format_info (info, params) /* Functions taking a va_list normally pass a non-literal format string. These functions typically are declared with first_arg_num == 0, so avoid warning in those cases. */ - if (info->first_arg_num != 0) + if (info->first_arg_num != 0 && warn_format > 1) warning ("format not a string literal, argument types not checked"); return; } diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 864ea8b..ed15761 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -677,6 +677,8 @@ c_decode_option (argc, argv) warn_traditional = 1; else if (!strcmp (p, "-Wno-traditional")) warn_traditional = 0; + else if (!strncmp (p, "-Wformat=", 9)) + warn_format = atol (p + 9); else if (!strcmp (p, "-Wformat")) warn_format = 1; else if (!strcmp (p, "-Wno-format")) |