URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 298 |
Rev 399 |
/* { dg-do run } */
|
/* { dg-do run } */
|
/* { dg-options "-fno-strict-aliasing" } */
|
/* { dg-options "-fno-strict-aliasing" } */
|
/* { dg-skip-if "unaligned access" { sparc*-*-* } "*" "" } */
|
/* { dg-skip-if "unaligned access" { sparc*-*-* } "*" "" } */
|
|
/* { dg-skip-if "alignment exception" { or32*-*-* } "*" "" } */
|
|
|
extern void abort (void);
|
extern void abort (void);
|
#if (__SIZEOF_INT__ <= 2)
|
#if (__SIZEOF_INT__ <= 2)
|
struct X {
|
struct X {
|
unsigned char pad : 4;
|
unsigned char pad : 4;
|
unsigned int a : 16;
|
unsigned int a : 16;
|
unsigned int b : 8;
|
unsigned int b : 8;
|
unsigned int c : 6;
|
unsigned int c : 6;
|
} __attribute__((packed));
|
} __attribute__((packed));
|
#else
|
#else
|
struct X {
|
struct X {
|
unsigned char pad : 4;
|
unsigned char pad : 4;
|
unsigned int a : 32;
|
unsigned int a : 32;
|
unsigned int b : 24;
|
unsigned int b : 24;
|
unsigned int c : 6;
|
unsigned int c : 6;
|
} __attribute__((packed));
|
} __attribute__((packed));
|
|
|
#endif
|
#endif
|
|
|
|
|
int main (void)
|
int main (void)
|
{
|
{
|
struct X x;
|
struct X x;
|
unsigned int bad_bits;
|
unsigned int bad_bits;
|
|
|
x.pad = -1;
|
x.pad = -1;
|
x.a = -1;
|
x.a = -1;
|
x.b = -1;
|
x.b = -1;
|
x.c = -1;
|
x.c = -1;
|
|
|
bad_bits = ((unsigned int)-1) ^ *(1+(unsigned int *) &x);
|
bad_bits = ((unsigned int)-1) ^ *(1+(unsigned int *) &x);
|
if (bad_bits != 0)
|
if (bad_bits != 0)
|
abort ();
|
abort ();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.