(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr80163.c
       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  }