/* { dg-do run } */ | |
/* { dg-require-effective-target lp64 } */ | |
extern void __attribute__ ((noreturn)) abort (void); | |
int __attribute__ ((noinline, noclone)) | |
foo (unsigned long addr) { | |
unsigned long *p = (unsigned long*)((addr & 0xffff83fffffffff8UL) * 4); | |
unsigned long xxx = (unsigned long)(p + 1); | |
return xxx >= 0x3c000000000UL; | |
} | |
int | |
main (void) | |
{ | |
if (foo (0)) | |
abort (); | |
if (foo (0x7c0000000000UL)) | |
abort (); | |
if (!foo (0xfc0000000000UL)) | |
abort (); | |
return 0; | |
} |