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