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 bar(void)8bar (void) 9 { 10 v++; 11 asm volatile ("" : : : "memory"); 12 } 13 14 __attribute__((noinline, noclone)) __int128_t * foo(unsigned long ** p)15foo (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 main()28main () 29 { 30 __int128_t *p; 31 unsigned long *q; 32 p = foo (&q); 33 if (*p != *q) 34 __builtin_abort (); 35 return 0; 36 } 37