aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/Wsuggest-attribute-1.c
blob: 8b5b398fb78d74e8b49299109c15524b381d3022 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* PR c/98487 */
/* { dg-do compile { target { c || c++11 } } } */
/* { dg-options "-Wsuggest-attribute=format" } */

#include <stdarg.h>

[[gnu::__format__(__printf__, 1, 2)]]
void
do_printf(const char * const a0, ...)
{
  va_list ap;
  va_start(ap, a0);
  __builtin_vprintf(a0, ap);
  va_end(ap);
}

[[gnu::__format__(__scanf__, 1, 2)]]
void
do_scanf(const char * const a0, ...)
{
  va_list ap;
  va_start(ap, a0);
  __builtin_vscanf(a0, ap);
  va_end(ap);
}

struct tm;

[[gnu::__format__(__strftime__, 1, 0)]]
void
do_strftime(const char * const a0, struct tm * a1)
{
  char buff[256];
  __builtin_strftime(buff, sizeof(buff), a0, a1);
  __builtin_puts(buff);
}