This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c/8290: [3.2/3.3 regression] Initialization with compound literalsduring declaration fails with gcc 3.2
- From: "Joseph S. Myers" <jsm28 at cam dot ac dot uk>
- To: <bangerth at dealii dot org>, <gcc-bugs at gcc dot gnu dot org>, <kipp at sgl dot crestech dot ca>, <gcc-gnats at gcc dot gnu dot org>
- Date: Tue, 3 Dec 2002 00:38:46 +0000 (GMT)
- Subject: Re: c/8290: [3.2/3.3 regression] Initialization with compound literalsduring declaration fails with gcc 3.2
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