| /* PR c/50584 - No warning for passing small array to C99 static array |
| declarator |
| { dg-do compile } |
| { dg-options "-Wall" } */ |
| |
| // Reduced from Glibc. |
| |
| typedef struct FILE FILE; |
| |
| int vfprintf (FILE*, const char*, __builtin_va_list); |
| int vfprintf (FILE*, const char*, __builtin_va_list); // { dg-bogus "-Warray-parameter" } |
| int vfprintf (FILE*, const char*, __builtin_va_list); |
| |
| int vfscanf (FILE*, const char*, __builtin_va_list); |
| int vfscanf (FILE*, const char*, __builtin_va_list); // { dg-bogus "-Warray-parameter" } |
| int vfscanf (FILE*, const char*, __builtin_va_list); |
| |
| |
| /* Verify that mismatches in array/to pointer to va_list are still |
| diagnosed. */ |
| |
| int fva (__builtin_va_list); |
| int fva (__builtin_va_list); |
| |
| int fpva_a1 (__builtin_va_list*); |
| int fpva_a1 (__builtin_va_list[1]); // { dg-warning "\\\[-Warray-parameter" } |
| |
| int fpva_a_ (__builtin_va_list*); |
| int fpva_a_ (__builtin_va_list[]); |
| int fpva_a_ (__builtin_va_list*); |
| int fpva_a_ (__builtin_va_list[]); |
| |
| /* Also verify that a mismatch between a pointer and a one-element |
| array are diagnosed. This is pervasive in Glibc headers but |
| making an exception for it would leave no way to express |
| the requirement that a function take at least one argument |
| by reference. */ |
| |
| struct __jmp_buf_tag; |
| int __sigsetjmp (struct __jmp_buf_tag*, int); |
| |
| struct __jmp_buf_tag { }; |
| typedef struct __jmp_buf_tag jmp_buf[1]; |
| |
| int __sigsetjmp (struct __jmp_buf_tag[1], int); // { dg-warning "\\\[-Warray-parameter" } |