/* PR sanitizer/65280 */ /* { dg-do run } */ /* { dg-options "-fsanitize=bounds" } */ /* Origin: Martin Uecker */ void foo (volatile int (*a)[3]) { (*a)[3] = 1; // error a[0][0] = 1; // ok a[1][0] = 1; // ok a[1][4] = 1; // error } int main () { volatile int a[20]; foo ((int (*)[3]) &a); return 0; } /* { dg-output "index 3 out of bounds for type 'int \\\[3\\\]'\[^\n\r]*(\n|\r\n|\r)" } */ /* { dg-output "\[^\n\r]*index 4 out of bounds for type 'int \\\[3\\\]'" } */