/* PR tree-optimization/89662- -Warray-bounds ICE on void* arithmetic { dg-do compile } { dg-require-effective-target alloca } { dg-options "-O2 -Wall" } */ static void* vptr (void *c) { return c; } void sink (void*); void test_vptr_arith_vla_cst (void) { int n = 1; char c[n]; sink (vptr (c) - 1); /* { dg-warning "\\\[-Warray-bounds" } */ } void test_vptr_arith_vla_range (int n) { if (n < 1 || 4 < n) return; char c[n]; sink (vptr (c) - 1); /* { dg-warning "\\\[-Warray-bounds" "pr82608" { xfail *-*-* } } */ } void test_vptr_arith_vla_var (int n) { char c[n]; sink (vptr (c) - 1); /* { dg-warning "\\\[-Warray-bounds" "pr82608" { xfail *-*-* } } */ }