[Bug c++/13377] [3.4 regression] unexpected behavior of namespace usage directive
--- Additional Comments From reichelt at gcc dot gnu dot org 2005-09-01 11:33 --- Fixed on the 3.4 branch, too. -- What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13377
[Bug c++/13377] [3.4 regression] unexpected behavior of namespace usage directive
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-09-01 11:32 --- Subject: Bug 13377 CVSROOT:/cvs/gcc Module name:gcc Branch: gcc-3_4-branch Changes by: [EMAIL PROTECTED] 2005-09-01 11:32:20 Modified files: gcc/cp : ChangeLog parser.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/lookup: ambig4.C ambig5.C Log message: PR c++/13377 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to lookup_name_real on final parse. * g++.dg/lookup/ambig4.C: New test. * g++.dg/lookup/ambig5.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.231&r2=1.3892.2.232 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.157.2.59&r2=1.157.2.60 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.422&r2=1.3389.2.423 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/lookup/ambig4.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.6.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/lookup/ambig5.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.6.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13377
[Bug c++/13377] [3.4 regression] unexpected behavior of namespace usage directive
--- 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