URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
/* Mis-aligned packed structures. */
|
/* Mis-aligned packed structures. */
|
|
|
typedef struct
|
typedef struct
|
{
|
{
|
char b0;
|
char b0;
|
char b1;
|
char b1;
|
char b2;
|
char b2;
|
char b3;
|
char b3;
|
char b4;
|
char b4;
|
char b5;
|
char b5;
|
} __attribute__ ((packed)) b_struct;
|
} __attribute__ ((packed)) b_struct;
|
|
|
|
|
typedef struct
|
typedef struct
|
{
|
{
|
short a;
|
short a;
|
long b;
|
long b;
|
short c;
|
short c;
|
short d;
|
short d;
|
b_struct e;
|
b_struct e;
|
} __attribute__ ((packed)) a_struct;
|
} __attribute__ ((packed)) a_struct;
|
|
|
|
|
int
|
int
|
main(void)
|
main(void)
|
{
|
{
|
volatile a_struct *a;
|
volatile a_struct *a;
|
volatile a_struct b;
|
volatile a_struct b;
|
|
|
a = &b;
|
a = &b;
|
*a = (a_struct){1,2,3,4};
|
*a = (a_struct){1,2,3,4};
|
a->e.b4 = 'c';
|
a->e.b4 = 'c';
|
|
|
if (a->a != 1 || a->b != 2 || a->c != 3 || a->d != 4 || a->e.b4 != 'c')
|
if (a->a != 1 || a->b != 2 || a->c != 3 || a->d != 4 || a->e.b4 != 'c')
|
abort ();
|
abort ();
|
|
|
exit (0);
|
exit (0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.