diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/ia64/pr52731.c')
-rw-r--r-- | gcc/testsuite/gcc.target/ia64/pr52731.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/ia64/pr52731.c b/gcc/testsuite/gcc.target/ia64/pr52731.c new file mode 100644 index 00000000000..50ef1d78d75 --- /dev/null +++ b/gcc/testsuite/gcc.target/ia64/pr52731.c @@ -0,0 +1,19 @@ +/* { dg-do compile { target ia64-*-* } } */ +/* { dg-options "-O2" } */ + +char* area; +long int area_size; +char* base; + +void fun(unsigned long int addr) +{ + unsigned long int size32 = (addr + 4096 - 1) & ~(4096 - 1); + unsigned long int size = size32 * sizeof(unsigned int); + + if (size > 0) { + size = (size + 1) & ~(1); + } + + area_size = size; + area = base + size; +} |