Hi All,

I'm wondering if the following behavior is:

1.  An already reported bug.
2.  Not reported, I need to file a bugzilla.
3.  Disputed.

Here's the test case:

typedef unsigned short ushort;

namespace X
{
    typedef unsigned short ushort;
}

using namespace X;

int main()
{
    ushort us = 0;
}

We currently get:

error: 'ushort' was not declared in this scope

The deal is that the typedef ushort is defined in two different places, to the same type, and then brought "in conflict" via a using declaration. But since the two typedefs refer to the same type, I expect that the compiler will see that there is no conflict, and proceed without error or warning (reference C++03 7.1.3p2).

Had the two typedefs referred to different types, I expect the compiler to complain about an ambiguity, for example:

typedef unsigned short ushort;

namespace X
{
    typedef short ushort;
}

using namespace X;

int main()
{
    ushort us = 0;
}

error: ambiguous access to name found 'ushort' and 'X::ushort'

-Howard

Reply via email to