From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29033 invoked by alias); 5 Apr 2004 23:20:26 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 28996 invoked by uid 48); 5 Apr 2004 23:20:21 -0000 Date: Mon, 05 Apr 2004 23:20:00 -0000 Message-ID: <20040405232021.28995.qmail@sources.redhat.com> From: "jason at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20031204043712.13294.bkoz@gcc.gnu.org> References: <20031204043712.13294.bkoz@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/13294] [3.4 Regression] namespace associations vs. specializations X-Bugzilla-Reason: CC X-SW-Source: 2004-04/txt/msg00471.txt.bz2 List-Id: ------- Additional Comments From jason at gcc dot gnu dot org 2004-04-05 23:20 ------- Unfortunately, my patch doesn't completely fix this bug. This testcase, which depends on the patch for 14500, shows the problem: namespace A { template struct X { }; template void f(X&); // #1 } namespace B { using namespace A __attribute__((strong)); template<> struct X { }; template<> void f(X&) { } // #2 } int main() { B::X x; B::f(x); // calls #1 instead of #2 } The specialization of f is mangled as _ZN1B1fIiEEvRN1A1XIT_EE, which demangles to void B::f(A::X&). The specialization of X is being mangled using the template context, rather than the specialization context as desired in this bug. I think that this must be resolved before 3.4.0, since it affects the ABI. I will try to fix it tonight. -- What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |critical Status|RESOLVED |REOPENED Priority|P2 |P1 Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13294