1/* { dg-do compile } */
2/* { dg-options "-O2 -mcpu=5208" } */
3
4#include <stdlib.h>
5
6void __attribute__ ((noinline))
7oof()
8{
9  asm volatile ("" ::: "memory");
10}
11int print_info(unsigned int *ip_addr)
12{
13    int invalid = 0;
14
15    if (ip_addr) {
16        unsigned int haddr = *ip_addr;
17        oof("stuff");
18        if (0x0 == haddr) {
19            invalid = 1;
20        }
21        oof("stuff2");
22    } else {
23        invalid = 1;
24    }
25
26    return invalid;
27}
28
29int main(int argc, char *argv[])
30{
31    unsigned int myaddr;
32    int ret;
33
34    myaddr = 0x0;
35    ret = print_info(&myaddr);
36    if (!ret)
37        abort ();
38
39    myaddr = 0x01020304;
40    ret = print_info(&myaddr);
41    if (ret)
42        abort ();
43    exit (0);
44}
45
46
47