From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25458 invoked by alias); 8 Jan 2009 23:03:24 -0000 Received: (qmail 22287 invoked by uid 48); 8 Jan 2009 23:03:07 -0000 Date: Thu, 08 Jan 2009 23:03:00 -0000 Message-ID: <20090108230307.22286.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/36019] [4.2/4.3/4.4 Regression] template parameter does not hide class name In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dodji at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-01/txt/msg00910.txt.bz2 ------- Comment #3 from dodji at gcc dot gnu dot org 2009-01-08 23:03 ------- Created an attachment (id=17059) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17059&action=view) candidate patch I think what is happening is that lookup_name_real (in name-lookup.c) makes sure types defined in the class hierarchy hide template type parameters. That scheme is implemented in the outer_binding accessor function. That scheme is fine for class templates, as stated in the spec in [temp.res] and [temp.local]. Template parameters of member templates though, should hide types defined in the class scope. This patch tries to implement that. But I am not sure if it's the right approach. I'll keep working on it until it's suitable for submission to gcc-patches. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36019