Fix function redefinition checks for old-style functions
Pull out f() / empty + non-void argument checking
Handle function redefinitions with f() between
Correctly handle sizeof(struct_expr)->member