In the following case, pointer addoff calculate by "&x.q + off" may have a chance alias to x.p structure member.
struct X { int *p; int *q; }; int foo(int i, int j, int off) { struct X x; int **t, *addoff; x.p = &i; x.q = &j; t = &x.q; t += off; addoff = *t; return *addoff; }