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