c/4104: structure misalignment problem causing kernel failures

Paul Clements Paul.Clements@SteelEye.com
Mon Oct 15 06:32:00 GMT 2001


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-bugs mailing list