blob: 352d5a5d7641cb00031b982cb060599528a91560 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/* http://gcc.gnu.org/ml/gcc-patches/2004-02/msg01307.html */
typedef struct xdef xdef;
struct xdef
{
char xtyp;
xdef *next;
int y;
};
extern void b ();
extern void *foo (void *bar);
extern void *foo2 (void *bar1, void *bar2);
extern void *qwe;
static void
c (xdef * xp)
{
b (xp);
}
static void
a (xdef ** xpp)
{
xdef *xp;
xp = *xpp;
foo (xp);
xp = foo2 (xp, qwe);
b (xp->next);
foo (xp);
if (xp->y)
{
foo (xp);
if (xp)
{
xdef *p = foo2 (xp, qwe);
foo2 (xp, p);
xp = foo (p);
}
else
{
foo2 (foo(*xpp), *xpp);
}
}
*xpp = foo2 (xpp, qwe);
}
void
b (xdef ** xpp)
{
xdef *xp = *xpp;
if (!xp)
return;
if (xp->xtyp == 0)
a (xpp);
c (xp);
}
|