From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7854 invoked by alias); 5 Mar 2005 19:40:18 -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 7758 invoked by uid 48); 5 Mar 2005 19:40:10 -0000 Date: Sat, 05 Mar 2005 19:40:00 -0000 Message-ID: <20050305194010.7757.qmail@sourceware.org> From: "pinskia at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050305104208.20333.igodard@pacbell.net> References: <20050305104208.20333.igodard@pacbell.net> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/20333] [3.4/4.0/4.1 Regression] ICE on invalid code, typename outside of a template X-Bugzilla-Reason: CC X-SW-Source: 2005-03/txt/msg00668.txt.bz2 List-Id: ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-03-05 19:40 ------- I take that back, this is invalid code still, the typename keyword is not valid outside of a template. Reduced testcase: template struct f {}; f f2[2] = {typename f()}; This is a regression from 3.3.3. We should be able to recover much better in 3.4.0 than we did in 3.3.3 but we don't. In fact I would have assumed that we would get a better error message before ICEing. Even though in the full testcase we don't get an error, we do in the reduced testcase though: t.cc:3: error: expected nested-name-specifier -- What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed| |1 Keywords| |error-recovery, ice-on- | |invalid-code Known to fail| |3.4.0 4.1.0 Known to work| |3.3.3 Last reconfirmed|0000-00-00 00:00:00 |2005-03-05 19:40:09 date| | Summary|ICE |[3.4/4.0/4.1 Regression] ICE | |on invalid code, typename | |outside of a template Target Milestone|--- |3.4.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20333