/* PR tree-optimization/51721 */ /* { dg-do compile } */ /* { dg-options "-O2 -Warray-bounds" } */ static int a[10], b[10], c[10], d[10]; unsigned int f (unsigned int v) { return v == 17 ? 11 : v; } unsigned int g (unsigned int v) { return v == 17 ? 17 : v; } void t (unsigned int s) { if (s >> 1 == 0) { a[f (s)] = 0; /* { dg-bogus "array subscript is above array bounds" } */ a[f (s)] = 0; /* { dg-bogus "array subscript is above array bounds" } */ b[f (s)] = 0; /* { dg-bogus "array subscript is above array bounds" } */ c[g (s)] = 0; /* { dg-bogus "array subscript is above array bounds" } */ c[g (s)] = 0; /* { dg-bogus "array subscript is above array bounds" } */ d[f (s)] = 0; /* { dg-bogus "array subscript is above array bounds" } */ } }