1 /* PR tree-optimization/87034 - missing -Wformat-overflow on a sprintf
2    %s with a wide string.  */
3 /* { dg-do compile } */
4 /* { dg-require-effective-target 4byte_wchar_t } */
5 /* { dg-options "-O2 -Wall -Wformat-overflow -ftrack-macro-expansion=0" } */
6 
7 typedef __WCHAR_TYPE__ wchar_t;
8 
9 extern int sprintf (char*, const char*, ...);
10 
11 struct S
12 {
13   char a[1];
14   void (*pf)(void);
15 };
16 
test(struct S * p)17 void test (struct S *p)
18 {
19   const char *q = sizeof (wchar_t) == 2
20     ? (char*)L"\x4142\x4344" : (char*)L"\x41424344\x45464748";
21 
22   sprintf (p->a, "%s", q);   /* { dg-warning "\\\[-Wformat-overflow" "pr87034" { xfail *-*-*} } */
23 }
24