1struct Foo {
2    int *p;
3    struct X {
4	int a,b,c,d,e,*f;
5    } x;
6} *init, *init2;
7
8struct X __attribute__((const)) foo(struct X);
9struct Foo __attribute__((const)) foo2(struct Foo);
10
11void bar1 (void)
12{
13  init->x = foo (init2->x);
14}
15void bar2 (void)
16{
17  init->x = foo (init->x);
18}
19void bar3 (void)
20{
21  *init = foo2 (*init2);
22}
23