1 /* { dg-do run } */
2 /* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */
3 /* { dg-options "-fsanitize=object-size" } */
4
5 #define N 20
6
7 struct S { int a; };
8
9 __attribute__((noinline, noclone)) struct S
f1(int i)10 f1 (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
19 int
main()20 main ()
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]*\\^" } */
30