/* Test for printf formats: rejection of C2X (and C2X-recommended) formats in
   pedantic mode.  */
/* { dg-do compile } */
/* { dg-options "-std=c11 -pedantic -Wformat" } */

#include "format.h"

void
foo (int i, int_least8_t i8, int_least16_t i16, int_least32_t i32,
     int_least64_t i64, uint_least8_t u8, uint_least16_t u16,
     uint_least32_t u32, uint_least64_t u64, int_fast8_t if8,
     int_fast16_t if16, int_fast32_t if32, int_fast64_t if64, uint_fast8_t uf8,
     uint_fast16_t uf16, uint_fast32_t uf32, uint_fast64_t uf64)
{
  printf ("%b", i); /* { dg-warning "C" } */
  printf ("%B", i); /* { dg-warning "C" } */
  printf ("%w8d", i8); /* { dg-warning "C" } */
  printf ("%w16d", i16); /* { dg-warning "C" } */
  printf ("%w32d", i32); /* { dg-warning "C" } */
  printf ("%w64d", i64); /* { dg-warning "C" } */
  printf ("%wf8d", if8); /* { dg-warning "C" } */
  printf ("%wf16d", if16); /* { dg-warning "C" } */
  printf ("%wf32d", if32); /* { dg-warning "C" } */
  printf ("%wf64d", if64); /* { dg-warning "C" } */
  printf ("%w8u", u8); /* { dg-warning "C" } */
  printf ("%w16u", u16); /* { dg-warning "C" } */
  printf ("%w32u", u32); /* { dg-warning "C" } */
  printf ("%w64u", u64); /* { dg-warning "C" } */
  printf ("%wf8u", uf8); /* { dg-warning "C" } */
  printf ("%wf16u", uf16); /* { dg-warning "C" } */
  printf ("%wf32u", uf32); /* { dg-warning "C" } */
  printf ("%wf64u", uf64); /* { dg-warning "C" } */
  printf ("%w8i", i8); /* { dg-warning "C" } */
  printf ("%w8o", u8); /* { dg-warning "C" } */
  printf ("%w8x", u8); /* { dg-warning "C" } */
  printf ("%w8X", u8); /* { dg-warning "C" } */
  printf ("%w8n", &i8); /* { dg-warning "C" } */
}
