1/* { dg-do run } */
2/* { dg-options "-O2 -fipa-pta -fdump-ipa-pta-details" } */
3
4#include <stdarg.h>
5
6static void __attribute__((noinline,noclone))
7foo (int i, ...)
8{
9  va_list ap;
10  int *p;
11  va_start (ap, i);
12  p = va_arg (ap, int *);
13  *p = 1;
14  va_end (ap);
15}
16extern void abort (void);
17int main()
18{
19  int i = 0;
20  foo (0, &i);
21  if (i != 1)
22    abort ();
23  return 0;
24}
25
26/* Verify we properly handle variadic arguments and do not let escape
27   stuff through it.  */
28
29/* { dg-final { scan-ipa-dump "ESCAPED = { (ESCAPED )?(NONLOCAL )?}" "pta" } } */
30/* { dg-final { cleanup-ipa-dump "pta" } } */
31