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