1 typedef struct {
2   int a, b, c, d, e, f;
3 } A;
4 
foo(A * v,int w,int x,int * y,int * z)5 void foo (A *v, int w, int x, int *y, int *z)
6 {
7 }
8 
9 void
bar(A * v,int x,int y,int w,int h)10 bar (A *v, int x, int y, int w, int h)
11 {
12   if (v->a != x || v->b != y) {
13     int oldw = w;
14     int oldh = h;
15     int e = v->e;
16     int f = v->f;
17     int dx, dy;
18     foo(v, 0, 0, &w, &h);
19     dx = (oldw - w) * (double) e/2.0;
20     dy = (oldh - h) * (double) f/2.0;
21     x += dx;
22     y += dy;
23     v->a = x;
24     v->b = y;
25     v->c = w;
26     v->d = h;
27   }
28 }
29 
main()30 int main ()
31 {
32   A w = { 100, 110, 20, 30, -1, -1 };
33   bar (&w,400,420,50,70);
34   if (w.d != 70)
35     abort();
36   exit(0);
37 }
38