c/8290: [3.2/3.3 regression] Initialization with compound literals during declaration fails with gcc 3.2

Joseph S. Myers jsm28@cam.ac.uk
Mon Dec 2 16:46:00 GMT 2002


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

From: "Joseph S. Myers" <jsm28@cam.ac.uk>
To: <bangerth@dealii.org>,  <gcc-bugs@gcc.gnu.org>,  <kipp@sgl.crestech.ca>, 
     <gcc-gnats@gcc.gnu.org>
Cc:  
Subject: Re: c/8290: [3.2/3.3 regression] Initialization with compound literals
 during declaration fails with gcc 3.2
Date: Tue, 3 Dec 2002 00:38:46 +0000 (GMT)

 On 2 Dec 2002 bangerth@dealii.org wrote:
 
 >     Confirmed. Assuming the code is legal, it is a regression
 >     from 3.0, which compiled it fine. A simpler code is this:
 
 This is deliberate, and the subject of previous mistaken PRs.  Compound
 literals are, in C99, unnamed variables, not constant expressions that can
 be used in initializers, and allowing them in initializers is not
 consistent with the C language and this C99 concept.  There is a special
 allowance for the old GNU "constructor expressions", which used the same
 syntax but had different semantics in this area, in gnu89 mode, but not
 gnu99.
 
 -- 
 Joseph S. Myers
 jsm28@cam.ac.uk
 



More information about the Gcc-prs mailing list