1/* { dg-do run } */ 2/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ 3/* { dg-options "-fsanitize=object-size" } */ 4 5#define N 20 6 7struct S { int a; }; 8 9__attribute__((noinline, noclone)) struct S 10f1 (int i) 11{ 12 struct S a[N]; 13 struct S *p = a; 14 struct S s; 15 s = p[i]; 16 return s; 17} 18 19int 20main () 21{ 22 f1 (N); 23 return 0; 24} 25 26/* { dg-output "load of address \[^\n\r]* with insufficient space for an object of type\[^\n\r]*(\n|\r\n|\r)" } */ 27/* { dg-output "\[^\n\r]*note: pointer points here\[^\n\r]*(\n|\r\n|\r)" } */ 28/* { dg-output "\[^\n\r]*\[^\n\r]*(\n|\r\n|\r)" } */ 29/* { dg-output "\[^\n\r]*\\^\[^\n\r]*(\n|\r\n|\r)" } */ 30