aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/format/xopen-2.c
blob: 4aee191ea2b619b0f0e471320c8111d1b02ecabd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Test for X/Open format extensions, as found in the
   Single Unix Specification.  Test for bug reported by
   Pierre-Canalsat PETIT <pierrecanalsat.petit.canalsat@canal-plus.com>
   in PR c/6547.  The test for absence of a parameter for a * width was done
   too early in the case of operand numbers and vprintf formats.
*/
/* Origin: Joseph Myers <jsm28@cam.ac.uk> */
/* { dg-do compile } */
/* { dg-options "-std=gnu99 -Wformat" } */

#include "format.h"

void vbar (va_list, const char *) __attribute__((__format__(__printf__, 2, 0)));

void
foo (int i, int j, va_list va)
{
  printf("%2$*1$c", i, j);
  printf("%2$*1$c %2$*1$c", i, j); /* { dg-bogus "matching" "bogus too few dollar" } */
  vbar(va, "%*s"); /* { dg-bogus "matching" "bogus too few vprintf" } */
}