aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>1999-10-28 10:53:12 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>1999-10-28 10:53:12 +0000
commit301452153700ff8c81d28e58a9e10117655b6a00 (patch)
tree9d365ca91c18b8d79fd064f558e97fee4360397f /gcc/c-common.c
parent4404ce281deeb8bff4464e6987fc649510c8c639 (diff)
downloadgcc-301452153700ff8c81d28e58a9e10117655b6a00.zip
gcc-301452153700ff8c81d28e58a9e10117655b6a00.tar.gz
gcc-301452153700ff8c81d28e58a9e10117655b6a00.tar.bz2
c-common.c (check_format_info): Avoid non-literal format string warnings when `first_arg_num' is zero.
* c-common.c (check_format_info): Avoid non-literal format string warnings when `first_arg_num' is zero. From-SVN: r30240
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r--gcc/c-common.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c
index 3e9d962..8b2f69c 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -1491,7 +1491,11 @@ check_format_info (info, params)
{
/* The user may get multiple warnings if the supplied argument
isn't even a string pointer. */
- warning ("format not a string literal, argument types not checked");
+ /* 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)
+ warning ("format not a string literal, argument types not checked");
return;
}
format_tree = TREE_OPERAND (format_tree, 0);
@@ -1499,7 +1503,11 @@ check_format_info (info, params)
{
/* The user may get multiple warnings if the supplied argument
isn't even a string pointer. */
- warning ("format not a string literal, argument types not checked");
+ /* 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)
+ warning ("format not a string literal, argument types not checked");
return;
}
format_chars = TREE_STRING_POINTER (format_tree);