1 /* { dg-require-effective-target untyped_assembly } */
2 
3 int heap;
4 
g()5 g(){}
6 
f(int i1,int i2)7 f(int i1, int i2)
8 {
9   i1 = *(int*)(i1 + 4);
10   if (i1 == 0)
11     goto L4;
12   else
13     goto L9;
14  L3:
15   i2 = heap - 8;
16   *(int*)i2 = 3;
17   *(int*)(i2 + 4) = i1;
18   heap -= 8;
19   return i2;
20  L4:
21   i1 = g(i2);
22   goto L5;
23  L5:
24   i1 = *(int*)(i1 + 4);
25   if (i1 == 0)
26     goto L7;
27   else
28     goto L8;
29  L7:
30   i1 = 0;
31   goto L3;
32  L8:
33   i1 = 1;
34   goto L3;
35  L9:
36   i1 = 1;
37   goto L3;
38 }
39