Consider the following example source code:
struct foo; struct bar; #pragma alias (struct foo, struct bar) struct foo { int f1; int f2; } *fp; struct bar { short b1; short b2; int b3; } *bp;
The pragma in this example tells the compiler that foo and bar are allowed to alias each other. The compiler makes the following assumptions about alias information: