1 /* PR c/50584 - No warning for passing small array to C99 static array
2 declarator
3 { dg-do compile }
4 { dg-options "-Wall" } */
5
6 // Reduced from Glibc.
7
8 typedef struct FILE FILE;
9
10 int vfprintf (FILE*, const char*, __builtin_va_list);
11 int vfprintf (FILE*, const char*, __builtin_va_list); // { dg-bogus "-Warray-parameter" }
12 int vfprintf (FILE*, const char*, __builtin_va_list);
13
14 int vfscanf (FILE*, const char*, __builtin_va_list);
15 int vfscanf (FILE*, const char*, __builtin_va_list); // { dg-bogus "-Warray-parameter" }
16 int vfscanf (FILE*, const char*, __builtin_va_list);
17
18
19 /* Verify that mismatches in array/to pointer to va_list are still
20 diagnosed. */
21
22 int fva (__builtin_va_list);
23 int fva (__builtin_va_list);
24
25 int fpva_a1 (__builtin_va_list*);
26 int fpva_a1 (__builtin_va_list[1]); // { dg-warning "\\\[-Warray-parameter" }
27
28 int fpva_a_ (__builtin_va_list*);
29 int fpva_a_ (__builtin_va_list[]);
30 int fpva_a_ (__builtin_va_list*);
31 int fpva_a_ (__builtin_va_list[]);
32
33 /* Also verify that a mismatch between a pointer and a one-element
34 array are diagnosed. This is pervasive in Glibc headers but
35 making an exception for it would leave no way to express
36 the requirement that a function take at least one argument
37 by reference. */
38
39 struct __jmp_buf_tag;
40 int __sigsetjmp (struct __jmp_buf_tag*, int);
41
42 struct __jmp_buf_tag { };
43 typedef struct __jmp_buf_tag jmp_buf[1];
44
45 int __sigsetjmp (struct __jmp_buf_tag[1], int); // { dg-warning "\\\[-Warray-parameter" }