| /* PR c/92326 - wrong bound in zero-length array diagnostics |
| { dg-do compile } |
| { dg-options "-O2 -Wall" } */ |
| |
| extern int a0[0]; |
| extern int ax[]; |
| |
| void warn_global_array (void) |
| { |
| a0[0] = 0; // { dg-warning "array bounds of 'int *\\\[0]'" } |
| ax[-1] = 0; // { dg-warning "array bounds of 'int *\\\[]'" } |
| } |
| |
| |
| struct S0 { int n, a0[0]; } s0; |
| struct Sx { int n, ax[]; } sx = { 0 }; |
| |
| void warn_member_array (void) |
| { |
| s0.a0[0] = 0; // { dg-warning "array bounds of 'int *\\\[0]'" } |
| sx.ax[0] = 0; // { dg-warning "array bounds of 'int *\\\[]'" } |
| } |