1/* Test for warnings for missing format attributes.  */
2/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
3/* { dg-do compile } */
4/* { dg-options "-std=gnu99 -Wmissing-format-attribute" } */
5
6#include "format.h"
7
8void
9foo (const char *fmt, ...)
10{
11  va_list ap;
12  va_start (ap, fmt);
13  vprintf (fmt, ap); /* { dg-warning "candidate" "printf attribute warning" } */
14  va_end (ap);
15}
16
17void
18bar (const char *fmt, ...)
19{
20  va_list ap;
21  va_start (ap, fmt);
22  vscanf (fmt, ap); /* { dg-warning "candidate" "scanf attribute warning" } */
23  va_end (ap);
24}
25
26__attribute__((__format__(gnu_attr___printf__, 1, 2))) void
27foo2 (const char *fmt, ...)
28{
29  va_list ap;
30  va_start (ap, fmt);
31  vprintf (fmt, ap);
32  va_end (ap);
33}
34
35void
36vfoo (const char *fmt, va_list arg)
37{
38  vprintf (fmt, arg); /* { dg-warning "candidate" "printf attribute warning 2" } */
39}
40