Speaking of nits, how about this:
typedef int x;
void f () { extern int x; x = 5; }
Is the second declaration of "x" legal?
If it is, what linkage does "x" have? 3.1.2.2 would suggest that the
second declaration "has the same linkage as any visible declaration of
the identifier with file scope" -- i.e. none?
++sja