1 /* { dg-do run } */ 2 /* { dg-require-effective-target lp64 } */ 3 4 extern void __attribute__ ((noreturn)) abort (void); 5 6 int __attribute__ ((noinline, noclone)) foo(unsigned long addr)7foo (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 main(void)14main (void) 15 { 16 if (foo (0)) 17 abort (); 18 if (foo (0x7c0000000000UL)) 19 abort (); 20 if (!foo (0xfc0000000000UL)) 21 abort (); 22 return 0; 23 } 24