extern void * f1(); extern void f2(int); void main(int c) { int * (*p)(int); void *x, *y; p = &f1; x = (*p)(c); // Alarm, but the analysis proceeds p = &f2; y = (*p)(c); // Call deemed entirely invalid }