1/* PR sanitizer/65280 */ 2/* { dg-do run } */ 3/* { dg-options "-fsanitize=bounds" } */ 4/* Origin: Martin Uecker <uecker@eecs.berkeley.edu> */ 5 6void 7foo (volatile int (*a)[3]) 8{ 9 (*a)[3] = 1; // error 10 a[0][0] = 1; // ok 11 a[1][0] = 1; // ok 12 a[1][4] = 1; // error 13} 14 15int 16main () 17{ 18 volatile int a[20]; 19 foo ((int (*)[3]) &a); 20 return 0; 21} 22 23/* { dg-output "index 3 out of bounds for type 'int \\\[3\\\]'\[^\n\r]*(\n|\r\n|\r)" } */ 24/* { dg-output "\[^\n\r]*index 4 out of bounds for type 'int \\\[3\\\]'" } */ 25