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

Wolfgang Bangerth bangerth@ticam.utexas.edu
Tue Dec 3 07:56:00 GMT 2002


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

From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: Gabriel Dos Reis <gdr@integrable-solutions.net>
Cc: Volker Reichelt <reichelt@igpm.rwth-aachen.de>, <gcc-gnats@gcc.gnu.org>,
   <gcc-bugs@gcc.gnu.org>, <sgunderson@bigfoot.com>
Subject: Re: c++/8778: ICE on illegal initialization of non-integral static
 in-class constant
Date: Tue, 3 Dec 2002 09:47:50 -0600 (CST)

 Gaby, Volker,
 
 let's settle this matter:
 
 
 > | > ------------------------snip here----------------------
 > | > template <int n> struct A
 > | > {
 > | >     static const int i[] = { 1, 2 };       // works
 > | > };
 > 
 > If this compiles with GCC then that is a compiler bug.  The program
 > construct is invalid.
 > 
 > [...]
 > 
 > | So maybe we can meet in the middle: "The code is illegal based on the C++ 
 > | standard, but is accepted as a gcc extension"?
 > 
 > I doubt that is an extension.
 
 I just filed report PR 8797 stating that the above syntax should not be
 accepted, or alternatively that the "extension" should be documented in
 the manual. I guess I lean towards the first alternative. Note also that
 using -pedantic yields a _warning_, not an error on the code above, so I
 guess having a separate report is justified.
 
 Regards
   Wolfgang
 
 -------------------------------------------------------------------------
 Wolfgang Bangerth              email:           bangerth@ticam.utexas.edu
                                www: http://www.ticam.utexas.edu/~bangerth
 
 



More information about the Gcc-prs mailing list