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