This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: GCC and UltraSparc 2
- From: "Claudio Marino" <Claudio dot Marino at marconi dot com>
- To: "Richard Henderson <rth" <rth at redhat dot com>
- Cc: "gcc-bugs" <gcc-bugs at gcc dot gnu dot org>
- Date: Fri, 17 May 2002 09:47:32 +0200
- Subject: Re: GCC and UltraSparc 2
Sorry if I am insistent, but I've tried with "-fpack-struct".
This cause the structs to be packed, as expected, but when I access to a
disaligned field of a struct with a pointer, a BUS ERROR is raised:
typedef struct
{
unsigned char byteField1;
unsigned char byteField2;
unsigned long udwordField1;
unsigned char byteField3;
} PackedStruct;
PackedStruct packedStr;
PackedStruct *packedPtr;
unsigned char *packedByte1Ptr;
unsigned char *packedByte2Ptr;
unsigned long *packedUdword1Ptr;
unsigned char *packedByte3Ptr;
packedStr.byteField1 = 15;
packedStr.byteField2 = 25;
packedStr.udwordField1 = 105;
packedStr.byteField3 = 35;
packedPtr = &packedStr;
packedByte1Ptr = &(packedPtr->byteField1);
packedByte2Ptr = &(packedPtr->byteField2);
packedUdword1Ptr = &(packedPtr->udwordField1);
packedByte3Ptr = &(packedPtr->byteField3);
/*
******************************************
* FIELDS POINTERS *
******************************************
packedPtr = 0xeffffbd0
packedByte1Ptr = 0xeffffbd0
packedByte2Ptr = 0xeffffbd1
packedUdword1Ptr = 0xeffffbd2
packedByte3Ptr = 0xeffffbd6
*/
printf ("\n packedStr.udwordField1 = %d", *packedUdword1Ptr);
/*
* BUS ERROR
*/
Can you help me?
Thank you in advance.
Claudio.
Richard Henderson <rth@redhat.com> on 17/05/2002 03.54.41
To: Claudio Marino <Claudio.Marino@marconi.com>
cc: gcc-bugs@gcc.gnu.org
Subject: Re: GCC and UltraSparc 2
On Mon, May 13, 2002 at 03:56:33PM +0200, Claudio Marino wrote:
> In other words, does an option like "-misalign" or "-xmemalign=1i" exist
> for GCC?
-fpack-struct
r~