This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Using Compound Literal + type-punning to initialize static const array
- From: Mason <mpeg dot blue at free dot fr>
- To: gcc-help at gcc dot gnu dot org
- Cc: "Joseph S. Myers" <joseph at codesourcery dot com>, Marek Polacek <polacek at redhat dot com>, Jakub Jelinek <jakub at gcc dot gnu dot org>
- Date: Fri, 28 Nov 2014 17:11:41 +0100
- Subject: Re: Using Compound Literal + type-punning to initialize static const array
- Authentication-results: sourceware.org; auth=none
- Authentication-results: sfrmc.priv.atos.fr; dkim=none (no signature); dkim-adsp=none (no policy) header dot from=mpeg dot blue at free dot fr
- References: <54736280 dot 8040409 at free dot fr>
On 24/11/2014 17:53, Mason wrote:
> Consider the following code: [big snip]
(Perhaps my previous message was too verbose.)
Why does gcc reject the following code:
union foob { int val; struct { int X; } bits; };
static const int u = ((union foob) {.bits = { .X=42 }}).val;
$ gcc -std=gnu89 test.c
test.c:2:30: error: initializer element is not constant
static const int u = ((union foob) {.bits = { .X=42 }}).val;
Is this related to bug 64067?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64067
Regards.