From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5798 invoked by alias); 24 Feb 2003 17:26:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 5773 invoked by uid 71); 24 Feb 2003 17:26:00 -0000 Resent-Date: 24 Feb 2003 17:26:00 -0000 Resent-Message-ID: <20030224172600.5772.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org, mark@codesourcery.com Resent-Reply-To: gcc-gnats@gcc.gnu.org, bangerth@ticam.utexas.edu Received: (qmail 3635 invoked by uid 48); 24 Feb 2003 17:22:14 -0000 Message-Id: <20030224172214.3634.qmail@sources.redhat.com> Date: Mon, 24 Feb 2003 17:26:00 -0000 From: bangerth@ticam.utexas.edu Reply-To: bangerth@ticam.utexas.edu To: gcc-gnats@gcc.gnu.org Cc: mark@codesourcery.com X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) X-GNATS-Notify: mark@codesourcery.com Subject: c++/9836: [3.4 regression] Error with typdefs in partial specializations of classes X-SW-Source: 2003-02/txt/msg01270.txt.bz2 List-Id: >Number: 9836 >Category: c++ >Synopsis: [3.4 regression] Error with typdefs in partial specializations of classes >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: rejects-legal >Submitter-Id: net >Arrival-Date: Mon Feb 24 17:26:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: Wolfgang Bangerth >Release: unknown-1.0 >Organization: >Environment: present mainline >Description: This broke with a patch that I think must have gone in yesterday (2003-02-23): -------------------------- template struct X {}; template struct X { typedef double* type; type foo () const; }; template typename X::type X::foo () const {} ------------------------------- deal.II/base> /ticam/bangerth/tmp/build-gcc/gcc-install/bin/gcc -c y.cc y.cc:10: error: prototype for `typename X::type X::foo() const' does not match any in class `X' y.cc:5: error: candidate is: double* X::foo() const y.cc:10: error: template definition of non-template `typename X::type X::foo() const' There is only one patch in this timeframe, 2003-02-23 Mark Mitchell PR c++/5333 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro. * parser.c (cp_parser_diagnose_invalid_type_name): Use it. * pt.c (instantiate_class_template): Don't try to instantiate dependent types. (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE. I'll try to investigate further whether this is the one that caused the problem, but that will have to wait until tomorrow, of so. Mark, if you spot right away that your patch caused this, drop me a note so that I can short-cut my efforts on this. W. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: