1extern void abort (void);
2extern void exit (int);
3typedef __UINTPTR_TYPE__ uintptr_t;
4int n = 0;
5int f (void) { return ++n; }
6int
7main (void)
8{
9  int a = 0;
10  int *p;
11  uintptr_t b;
12  b = (uintptr_t)(p = &(int []){0, f(), 2}[1]);
13  if (*p != 1 || *(int *)b != 1 || n != 1)
14    abort ();
15  exit (0);
16}
17