Fix tricky typedef'ed identifier bug.

The following code is completely valid in C.

  typedef int x;
  int x = 3;

We rejected such code because the declaration looks as if
it has two type names (int and the user-defined type).