c/4104: structure misalignment problem causing kernel failures
Paul Clements
Paul.Clements@SteelEye.com
Mon Oct 15 07:56:00 GMT 2001
The following reply was made to PR c/4104; it has been noted by GNATS.
From: Paul Clements <Paul.Clements@SteelEye.com>
To: rodrigc@gcc.gnu.org
Cc: gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org
Subject: Re: c/4104: structure misalignment problem causing kernel failures
Date: Mon, 15 Oct 2001 09:29:06 -0400
rodrigc@gcc.gnu.org wrote:
>
> Synopsis: structure misalignment problem causing kernel failures
>
> State-Changed-From-To: open->feedback
> State-Changed-By: rodrigc
> State-Changed-When: Sat Oct 13 20:52:01 2001
> State-Changed-Why:
> Please review the bug submission guidelines at
> http://gcc.gnu.org/bugs.html and submit preprocessed source
> with your bug report.
>
> Also, since you are using the Redhat version of gcc,
> please report your bug to Red Hat's bug reporting
> system at:
> http://bugzilla.redhat.com/bugzilla/
>
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=4104&database=gcc
more info:
----------------------
Subject: [Bug 52451] Changed - structure misalignment problem in gcc
2.96-81
Date: Thu, 23 Aug 2001 16:59:12 -0400
From: bugzilla@redhat.com
To: jakub@redhat.com, paul.clements@steeleye.com, dlt@redhat.com
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug
report.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52451
--- shadow/52451 Thu Aug 23 16:37:00 2001
+++ shadow/52451.tmp.10269 Thu Aug 23 16:59:12 2001
@@ -3,7 +3,7 @@
Version: 7.1
Platform: i386
OS/Version: Linux
-Status: NEEDINFO
+Status: ASSIGNED
Resolution:
Severity: high
Priority: normal
@@ -139,3 +139,24 @@
Created an attachment (id=29274)
pre-processed source file, which demonstrates misalignment problem
+
+------- Additional comments from jakub@redhat.com 2001-08-23 16:59:38
-------
+Simplified testcase
+typedef struct x { int a; int b; } __attribute__((aligned(32))) X;
+typedef struct y { X x[32]; int c; } Y;
+
+Y y[3];
+
+int main(void)
+{
+ if (sizeof (y) != 3168)
+ abort ();
+ exit (0);
+}
+(the X in array is important, changing it to
+typedef struct y { X x; X y[31]; int c; } Y;
+fixes it).
+This testcase works on gcc < 2.96-RH or on 2.96-RH+ (incl. 3.0, 3.0.1,
3.1)
+on non-IA-32 architectures (tested alpha, IA-64, sparc).
+Fails on IA-32 with 2.96-RH, 3.0, 3.0.1, 3.1.
+Apparently some config/i386 alignment issue, will debug this tomorrow.
More information about the Gcc-prs
mailing list