| Bug#: 14821 | Product: gcc | Version: 3.4.0 | |
| Host: | Target: | Build: | |
| Status: RESOLVED | Severity: critical | Priority: P2 | |
| Resolution: FIXED | Assigned To: mark@codesourcery.com | Reported By: giovannibajo@libero.it | |
| Component: c++ | Target Milestone: 3.4.1 | ||
| Summary: [3.4/4.0 Regression] Duplicate namespace alias declaration should not conflict | |||
| Keywords: rejects-valid | |||
| Opened: 2004-04-02 11:10 | |||
| Description: | Last confirmed: 2004-04-02 12:34 | Opened: 2004-04-02 11:10 |
-----------------------------------
namespace A {
namespace B {}
}
namespace A {
namespace Alias = ::A::B;
}
namespace A {
namespace Alias = ::A::B;
}
-----------------------------------
namespace.cc:10: error: declaration of `namespace Alias = A::B;'
namespace.cc:6: error: conflicts with previous declaration `namespace Alias = A:
:B;'
This is obviously bogus, and breaks a library currently under review for Boost.
The workaround is harder than one might think because the conflicting aliases
come from different headers.
Subject: Bug 14821 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: mmitchel@gcc.gnu.org 2004-05-23 17:52:22 Modified files: gcc/testsuite : ChangeLog gcc/cp : ChangeLog name-lookup.c parser.c Added files: gcc/testsuite/g++.dg/other: ns1.C gcc/testsuite/g++.dg/template: invalid1.C Log message: PR c++/14821 * name-lookup.c (supplement_binding): Allow redefinitions of namespace aliases. PR c++/14883 * parser.c (cp_parser_template_argument): Robustify. PR c++/14821 * g++.dg/other/ns1.C: New test. PR c++/14883 * g++.dg/template/invalid1.C: New test. Patches: 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.179&r2=1.3389.2.180 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.102&r2=1.3892.2.103 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.34.2.11&r2=1.34.2.12 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.26&r2=1.157.2.27 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/other/ns1.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/invalid1.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1
Subject: Bug 14821 CVSROOT: /cvs/gcc Module name: gcc Changes by: mmitchel@gcc.gnu.org 2004-05-23 17:56:28 Modified files: gcc/cp : ChangeLog name-lookup.c parser.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/other: ns1.C gcc/testsuite/g++.dg/template: invalid1.C Log message: PR c++/14821 * name-lookup.c (supplement_binding): Allow redefinitions of namespace aliases. PR c++/14883 * parser.c (cp_parser_template_argument): Robustify. PR c++/14821 * g++.dg/other/ns1.C: New test. PR c++/14883 * g++.dg/template/invalid1.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4053&r2=1.4054 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gcc&r1=1.53&r2=1.54 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&r1=1.193&r2=1.194 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.3773&r2=1.3774 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/other/ns1.C.diff?cvsroot=gcc&r1=1.1&r2=1.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/invalid1.C.diff?cvsroot=gcc&r1=1.1&r2=1.2