This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/13377] [3.4 regression] unexpected behavior of namespace usage directive
- From: "reichelt at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Aug 2005 11:07:41 -0000
- Subject: [Bug c++/13377] [3.4 regression] unexpected behavior of namespace usage directive
- References: <20031210171832.13377.boris@kolpackov.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From reichelt at gcc dot gnu dot org 2005-08-31 11:07 -------
For the testcase
==================================
namespace N
{
int i;
}
int i;
using namespace N;
void foo() { i; }
==================================
we now get
ambig4.C: In function 'void foo()':
ambig4.C:10: error: use of 'i' is ambiguous
ambig4.C:6: error: first declared as 'int i' here
ambig4.C:3: error: also declared as 'int N::i' here
ambig4.C:10: error: 'i' was not declared in this scope
Btw, this is the testcase which was a regression from GCC 3.3.x.
For the testcase
==================================
namespace N
{
namespace M {}
}
namespace M {}
using namespace N;
using namespace M;
==================================
we now get (since the patch for PR23586 is also in place):
ambig5.C:13: error: use of 'M' is ambiguous
ambig5.C:10: error: first declared as 'namespace M { }' here
ambig5.C:7: error: also declared as 'namespace M { }' here
ambig5.C:13: error: 'M' is not a namespace-name
ambig5.C:13: error: expected namespace-name before ';' token
This is still a little suboptimal (first we say it's ambiguous,
then we say it's not declared/not a namespace-name), but I think
the user can figure out the problem now.
So this is fixed on mainline and the 4.0 branch.
--
What |Removed |Added
----------------------------------------------------------------------------
URL| |http://gcc.gnu.org/ml/gcc-
| |patches/2005-
| |08/msg01717.html
Summary|unexpected behavior of |[3.4 regression] unexpected
|namespace usage directive |behavior of namespace usage
| |directive
Target Milestone|--- |3.4.5
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13377