1/* Test for strftime formats. Rejection of formats using C99 features in 2 pedantic C90 mode. */ 3/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ 4/* { dg-do compile } */ 5/* { dg-options "-std=iso9899:1990 -pedantic -Wformat -Wformat-y2k" } */ 6 7#include "format.h" 8 9void 10foo (char *s, size_t m, const struct tm *tp) 11{ 12 strftime (s, m, "%C", tp); /* { dg-warning "C" "%C not in C90" } */ 13 strftime (s, m, "%D", tp); /* { dg-warning "C" "%D not in C90" } */ 14 /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 13 } */ 15 strftime (s, m, "%e", tp); /* { dg-warning "C" "%e not in C90" } */ 16 strftime (s, m, "%F", tp); /* { dg-warning "C" "%F not in C90" } */ 17 strftime (s, m, "%g", tp); /* { dg-warning "C" "%g not in C90" } */ 18 /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 17 } */ 19 strftime (s, m, "%G", tp); /* { dg-warning "C" "%G not in C90" } */ 20 strftime (s, m, "%h", tp); /* { dg-warning "C" "%h not in C90" } */ 21 strftime (s, m, "%n", tp); /* { dg-warning "C" "%n not in C90" } */ 22 strftime (s, m, "%r", tp); /* { dg-warning "C" "%r not in C90" } */ 23 strftime (s, m, "%R", tp); /* { dg-warning "C" "%R not in C90" } */ 24 strftime (s, m, "%t", tp); /* { dg-warning "C" "%t not in C90" } */ 25 strftime (s, m, "%T", tp); /* { dg-warning "C" "%T not in C90" } */ 26 strftime (s, m, "%u", tp); /* { dg-warning "C" "%u not in C90" } */ 27 strftime (s, m, "%V", tp); /* { dg-warning "C" "%V not in C90" } */ 28 strftime (s, m, "%z", tp); /* { dg-warning "C" "%z not in C90" } */ 29 strftime (s, m, "%EX", tp); /* { dg-warning "C" "%E not in C90" } */ 30 strftime (s, m, "%OW", tp); /* { dg-warning "C" "%O not in C90" } */ 31} 32