1 /* { dg-do run } */
2 /* { dg-options "-fcheck-pointer-bounds -mmpx" } */
3 
4 
5 #include "mpx-check.h"
6 #include <stdarg.h>
7 
8 int buf[100];
9 int buf1[10];
10 
vararg(int * p,va_list al)11 void vararg (int *p, va_list al)
12 {
13   int i;
14   int res;
15 
16   p = va_arg (al, int *);
17   i = va_arg (al, int);
18 
19   res = p[i];
20   printf ("%d\n", res);
21 }
22 
foo(int * p,...)23 void foo (int *p, ...)
24 {
25   va_list args;
26 
27   va_start (args, p);
28   vararg (p, args);
29   va_end (args);
30 }
31 
mpx_test(int argc,const char ** argv)32 int mpx_test (int argc, const char **argv)
33 {
34   foo (buf1, buf, 0);
35   foo (buf1, buf, 99);
36 
37   return 0;
38 }
39