c++/8778: ICE on illegal initialization of non-integral static in-class constant

Volker Reichelt reichelt@igpm.rwth-aachen.de
Mon Dec 2 16:06:00 GMT 2002


The following reply was made to PR c++/8778; it has been noted by GNATS.

From: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
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 <int n> 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
 
 



More information about the Gcc-prs mailing list