From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16475 invoked by alias); 22 Feb 2003 08:26:00 -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 16449 invoked by uid 71); 22 Feb 2003 08:26:00 -0000 Resent-Date: 22 Feb 2003 08:26:00 -0000 Resent-Message-ID: <20030222082600.16448.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 Resent-Reply-To: gcc-gnats@gcc.gnu.org, pfeifer@dbai.tuwien.ac.at (Gerald Pfeifer) Received: (qmail 15938 invoked from network); 22 Feb 2003 08:24:28 -0000 Received: from unknown (HELO vexpert.dbai.tuwien.ac.at) (128.130.111.12) by 172.16.49.205 with SMTP; 22 Feb 2003 08:24:28 -0000 Received: from acrux.dbai.tuwien.ac.at (acrux [128.130.111.39]) by vexpert.dbai.tuwien.ac.at (8.12.6/8.12.6) with ESMTP id h1M8OPsr012923; Sat, 22 Feb 2003 09:24:25 +0100 (CET) Received: (from pfeifer@localhost) by acrux.dbai.tuwien.ac.at (8.12.6/8.12.6/Submit) id h1M8OQp6038541; Sat, 22 Feb 2003 09:24:26 +0100 (CET) Message-Id: <200302220824.h1M8OQp6038541@acrux.dbai.tuwien.ac.at> Date: Sat, 22 Feb 2003 08:26:00 -0000 From: pfeifer@dbai.tuwien.ac.at (Gerald Pfeifer) To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: c++/9801: [3.4 regression] new parser: confusing error message for missing typename X-SW-Source: 2003-02/txt/msg01110.txt.bz2 List-Id: >Number: 9801 >Category: c++ >Synopsis: [3.4 regression] new parser: confusing error message for missing typename >Confidential: no >Severity: non-critical >Priority: high >Responsible: unassigned >State: open >Class: change-request >Submitter-Id: net >Arrival-Date: Sat Feb 22 08:26:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: >Release: 3.4 20030221 (experimental) >Organization: >Environment: System: FreeBSD acrux.dbai.tuwien.ac.at 4.7-RELEASE FreeBSD 4.7-RELEASE #0: Thu Jan 9 09:25:29 CET 2003 root@aludra.dbai.tuwien.ac.at:/usr/src/sys/compile/DBAI-MP i386 host: i386-unknown-freebsd4.7 build: i386-unknown-freebsd4.7 target: i386-unknown-freebsd4.7 configured with: /sw/test/gcc/cvs/configure --prefix=/sw/gcc-current --enable-languages=c,c++ --disable-checking >Description: Given the following program (which lacks typename in line 12) #include using namespace std; template class TCONJUNCTION { typedef int iterator; public: void get() { for( /*typename*/ TCONJUNCTION::iterator i = 1; // line 12 i != 10; i++ ) { } } }; the new parser issues the following hard error: x.cc: In member function `void TCONJUNCTION::get()': x.cc:12: error: expected `;' x.cc:13: error: `i' has not been declared x.cc:14: error: `i' has not been declared This is correct per se, but confusing for the average user, especially as previous versions of GCC did _not_ issue the "implicit typename" warning, or any warning for that matter, even with -ansi -pedantic -W -Wall. >How-To-Repeat: Save program as x.cc and `g++ x.cc`. >Fix: >Release-Note: >Audit-Trail: >Unformatted: