1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
struct f { int i; }; int g(int i, int c, struct f *ff, int *p) { int *t; if (c) t = &i; else t = &ff->i; *p = 0; return *t; } extern void abort(void); int main() { struct f f; f.i = 1; if (g(5, 0, &f, &f.i) != 0) abort (); return 0; }