annotate gcc/testsuite/gcc.dg/vla-14.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Test for VLA size evaluation in va_arg. */
kono
parents:
diff changeset
2 /* Origin: Joseph Myers <joseph@codesourcery.com> */
kono
parents:
diff changeset
3 /* { dg-do run } */
kono
parents:
diff changeset
4 /* { dg-options "-std=gnu99" } */
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 #include <stdarg.h>
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 extern void exit (int);
kono
parents:
diff changeset
9 extern void abort (void);
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 int a[10];
kono
parents:
diff changeset
12 int i = 9;
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 void
kono
parents:
diff changeset
15 f (int n, ...)
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 va_list ap;
kono
parents:
diff changeset
18 void *p;
kono
parents:
diff changeset
19 va_start (ap, n);
kono
parents:
diff changeset
20 p = va_arg (ap, typeof (int (*)[++i]));
kono
parents:
diff changeset
21 if (p != a)
kono
parents:
diff changeset
22 abort ();
kono
parents:
diff changeset
23 if (i != n)
kono
parents:
diff changeset
24 abort ();
kono
parents:
diff changeset
25 va_end (ap);
kono
parents:
diff changeset
26 }
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 int
kono
parents:
diff changeset
29 main (void)
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 f (10, &a);
kono
parents:
diff changeset
32 exit (0);
kono
parents:
diff changeset
33 }