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