(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr61095.c
       1  /* { dg-do run } */
       2  /* { dg-require-effective-target lp64 } */
       3  
       4  extern void __attribute__ ((noreturn)) abort (void);
       5  
       6  int __attribute__ ((noinline, noclone))
       7  foo (unsigned long addr) {
       8      unsigned long *p = (unsigned long*)((addr & 0xffff83fffffffff8UL) * 4);
       9      unsigned long xxx = (unsigned long)(p + 1);
      10      return xxx >= 0x3c000000000UL;
      11  }
      12  
      13  int
      14  main (void)
      15  {
      16    if (foo (0))
      17      abort ();
      18    if (foo (0x7c0000000000UL))
      19      abort ();
      20    if (!foo (0xfc0000000000UL))
      21      abort ();
      22    return 0;
      23  }