From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18768 invoked by alias); 3 Dec 2002 00:06: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 18725 invoked by uid 71); 3 Dec 2002 00:06:00 -0000 Date: Mon, 02 Dec 2002 16:06:00 -0000 Message-ID: <20021203000600.18723.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Volker Reichelt Subject: Re: c++/8778: ICE on illegal initialization of non-integral static in-class constant Reply-To: Volker Reichelt X-SW-Source: 2002-12/txt/msg00101.txt.bz2 List-Id: The following reply was made to PR c++/8778; it has been noted by GNATS. From: Volker Reichelt To: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org, sgunderson@bigfoot.com, bangerth@dealii.org Cc: Subject: Re: c++/8778: ICE on illegal initialization of non-integral static in-class constant Date: Tue, 3 Dec 2002 01:51:41 +0100 I don't quite agree with Wolfgangs analysis. Initializing const arrays is usually supported by gcc. In fact, the code compiles if you just leave out the curly braces around the initializer. So the ICE is neither caused by the array initializer nor by the infinite recursion (which might also come to mind as a compiler crasher) as the following example shows: --------------------snip here---------------------- template struct A { static const int i = A<0>::i; // works static const int i = { A<0>::i }; // ICE static const int i = { 1 }; // works }; --------------------snip here---------------------- Regards, Volker http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8778