From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1506 invoked by alias); 3 Dec 2002 00:46:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 1492 invoked by uid 71); 3 Dec 2002 00:46:02 -0000 Date: Mon, 02 Dec 2002 16:46:00 -0000 Message-ID: <20021203004602.1491.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Joseph S. Myers" Subject: Re: c/8290: [3.2/3.3 regression] Initialization with compound literals during declaration fails with gcc 3.2 Reply-To: "Joseph S. Myers" X-SW-Source: 2002-12/txt/msg00108.txt.bz2 List-Id: The following reply was made to PR c/8290; it has been noted by GNATS. From: "Joseph S. Myers" To: , , , 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