| /* PR c/101702 - ICE on invalid function redeclaration |
| { dg-do compile } |
| { dg-options "-Wall" } */ |
| |
| typedef __INTPTR_TYPE__ intptr_t; |
| |
| #define copysign(x, y) __builtin_copysign (x, y) |
| |
| void f0 (double[!copysign (~2, 3)]); |
| |
| void f1 (double[!copysign (~2, 3)]); |
| void f1 (double[1]); // { dg-warning "-Warray-parameter" } |
| |
| void f2 (int[(int)+1.0]); |
| void f2 (int[(int)+1.1]); |
| |
| /* Also verify that equivalent expressions don't needlessly cause false |
| positives or negatives. */ |
| struct S { int a[1]; }; |
| extern struct S *sp; |
| |
| void f3 (int[(intptr_t)((char*)sp->a - (char*)sp)]); |
| void f3 (int[(intptr_t)((char*)&sp->a[0] - (char*)sp)]); |
| void f3 (int[(intptr_t)((char*)&sp->a[1] - (char*)sp)]); // { dg-warning "-Warray-parameter" } |