1 /* { dg-do run } */
2 /* { dg-shouldfail "bounds violation" } */
3 /* { dg-options "-fcheck-pointer-bounds -mmpx" } */
4
5
6 #define SHOULDFAIL
7
8 #include "mpx-check.h"
9
10 struct s1
11 {
12 int *p;
13 int i1;
14 int i2;
15 } s1;
16
rd(int * p1,int * p2,int * p3,struct s1 s)17 int rd (int *p1, int *p2, int *p3, struct s1 s)
18 {
19 int res = s.p[s.i1 + s.i2];
20 printf ("%d\n", res);
21 return res;
22 }
23
24 int buf[100];
25 int buf1[10];
26
mpx_test(int argc,const char ** argv)27 int mpx_test (int argc, const char **argv)
28 {
29 struct s1 s;
30 s.p = buf;
31 s.i1 = 50;
32 s.i2 = -51;
33
34 rd (buf1, buf1, buf1, s);
35
36 return 0;
37 }
38