/* { dg-do compile } */
/* { dg-options "-O2 -mcpu=5208 -w" } */

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);
}


