public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: corey.minter@intel.com
To: gcc-gnats@gcc.gnu.org
Subject: c/9800: mismatching structure initializer with nested flexible array member, segfaults
Date: Sat, 22 Feb 2003 02:56:00 -0000 [thread overview]
Message-ID: <20030222025005.12167.qmail@sources.redhat.com> (raw)
>Number: 9800
>Category: c
>Synopsis: mismatching structure initializer with nested flexible array member, segfaults
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: unassigned
>State: open
>Class: ice-on-illegal-code
>Submitter-Id: net
>Arrival-Date: Sat Feb 22 02:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: Corey Minter
>Release: 3.1
>Organization:
>Environment:
linux 2.4
>Description:
Error message is...
gcc_seg_fault.c:14: internal error: Segmentation fault
Please submit a full bug report...
The following illegal code caused a segfault instead of being flagged as an illegal structure initializer. Of course I stripped this down and changed the data and identifier names from my original code :).
There are actually two errors in my code which I suppose "aligned" to trigger the segfault.
Here is the code...
// gcc_seg_fault.c
typedef struct {
int aaa;
} s1_t;
typedef struct {
int bbb;
s1_t s1_array[]; // <-- oops, array has no size
} s2_t;
static s2_t s2_array[]= {
{ 1, 4}, // <-- 4 should really be inside { }
{ 2, 5},
{ 3, 6}
};
The following code does work...
// gcc_ok1.c
typedef struct {
int aaa;
} s1_t;
typedef struct {
int bbb;
s1_t s1_array[];
} s2_t;
static s2_t s2_array[]= {
{ 1, {4}},
{ 2, {5}},
{ 3, {6}}
};
and this works also...
// gcc_ok2.c
typedef struct {
int aaa;
} s1_t;
typedef struct {
int bbb;
s1_t s1_array[2];
} s2_t;
static s2_t s2_array[]= {
{ 1, 4},
{ 2, 5},
{ 3, 6}
};
>How-To-Repeat:
gcc -c gcc_seg_fault.c
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
next reply other threads:[~2003-02-22 2:56 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-22 2:56 corey.minter [this message]
2003-02-22 9:05 paolo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030222025005.12167.qmail@sources.redhat.com \
--to=corey.minter@intel.com \
--cc=gcc-gnats@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).