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,struct s1 s)17int rd (int *p1, int *p2, 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)27int 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, s); 35 36 return 0; 37 } 38