diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/m68k/pr63347.c')
-rw-r--r-- | gcc/testsuite/gcc.target/m68k/pr63347.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/m68k/pr63347.c b/gcc/testsuite/gcc.target/m68k/pr63347.c new file mode 100644 index 00000000000..1d23e9a827a --- /dev/null +++ b/gcc/testsuite/gcc.target/m68k/pr63347.c @@ -0,0 +1,46 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mcpu=5208" } */ + +#include <stdlib.h> + +void __attribute__ ((noinline)) +oof() +{ + asm volatile ("" ::: "memory"); +} +int print_info(unsigned int *ip_addr) +{ + int invalid = 0; + + if (ip_addr) { + unsigned int haddr = *ip_addr; + oof("stuff"); + if (0x0 == haddr) { + invalid = 1; + } + oof("stuff2"); + } else { + invalid = 1; + } + + return invalid; +} + +int main(int argc, char *argv[]) +{ + unsigned int myaddr; + int ret; + + myaddr = 0x0; + ret = print_info(&myaddr); + if (!ret) + abort (); + + myaddr = 0x01020304; + ret = print_info(&myaddr); + if (ret) + abort (); + exit (0); +} + + |