1 /* PR c/80163 */
2 /* { dg-do compile { target int128 } } */
3 /* { dg-require-effective-target label_values } */
4
5 volatile int v;
6
7 __attribute__((noinline, noclone)) void
8 bar (void)
9 {
10 v++;
11 asm volatile ("" : : : "memory");
12 }
13
14 __attribute__((noinline, noclone)) __int128_t *
15 foo (unsigned long **p)
16 {
17 a:
18 bar ();
19 b:
20 bar ();
21 static __int128_t d = (unsigned long) &&a - (unsigned long) &&b;
22 static unsigned long e = (unsigned long) &&a - (unsigned long) &&b;
23 *p = &e;
24 return &d;
25 }
26
27 int
28 main ()
29 {
30 __int128_t *p;
31 unsigned long *q;
32 p = foo (&q);
33 if (*p != *q)
34 __builtin_abort ();
35 return 0;
36 }