1 /* { dg-do compile } */
2 /* { dg-options "-O2 -Warray-bounds" } */
6 static inline int n(void) {
7 __SIZE_TYPE__
strlen(const char *s
);
8 return strlen("12345");
23 a
[-1] = 0; /* { dg-warning "6:array subscript" } */
29 a
[10] = 0; /* { dg-warning "6:array subscript" } */
30 a
[11] = 0; /* { dg-warning "6:array subscript" } */
32 a
[2 * n() - 11] = 1; /* { dg-warning "6:array subscript" } */
35 a
[2 * n() - 0] = 1; /* { dg-warning "6:array subscript" } */
38 b
[-1] = 0; /* { dg-warning "6:array subscript" } */
42 b
[10] = 0; /* { dg-warning "6:array subscript" } */
43 b
[11] = 0; /* { dg-warning "6:array subscript" } */
45 b
[2 * n() - 11] = 1; /* { dg-warning "6:array subscript" } */
48 b
[2 * n() - 0] = 1; /* { dg-warning "array subscript" } */
50 c
.c
[-1] = 0; /* { dg-warning "8:array subscript" } */
54 c
.c
[10] = 0; /* { dg-warning "8:array subscript" } */
55 c
.c
[11] = 0; /* { dg-warning "8:array subscript" } */
57 c
.c
[2 * n() - 11] = 1; /* { dg-warning "8:array subscript" } */
58 c
.c
[2 * n() - 10] = 1;
60 c
.c
[2 * n() - 0] = 1; /* { dg-warning "8:array subscript" } */
65 g(&a
[11]); /* { dg-warning "array subscript" } */
66 g(&a
[-30]+10); /* { dg-warning "array subscript" } */
71 g(&b
[11]); /* { dg-warning "array subscript" } */
72 g(&c
.c
[11]); /* { dg-warning "array subscript" } */
78 g(&a
[-1]); /* { dg-warning "array subscript" } */
79 g(&b
[-1]); /* { dg-warning "array subscript" } */
94 for (i
= 20; i
< 30; ++i
)
95 a
[i
] = 1; /* { dg-warning "15:array subscript" } */