Reduced example, I think this is correct C++ as ::a references to the global type:
typedef int a;
struct y
{
::a a;
};
: Search converges between 2004-05-23-trunk (#458) and 2004-06-01-trunk (#459).
Most (All) of the changes inbetween that time that went on both the mainline and the 3.4 branch was
from Mark.

It sounds like we're talking about two different issues.
The initial report is about a problem with the declaration of "bar" in "main".
I can't reproduce that on either mainline or with the current 3.4 branch.
I do still get an error about the meaning of a name changing, which does indeed
look odd. I'm looking into that.