URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
extern void abort (void);
|
extern void abort (void);
|
extern void exit (int);
|
extern void exit (int);
|
struct s { unsigned char a[256]; };
|
struct s { unsigned char a[256]; };
|
union u { struct { struct s b; int c; } d; struct { int c; struct s b; } e; };
|
union u { struct { struct s b; int c; } d; struct { int c; struct s b; } e; };
|
static union u v;
|
static union u v;
|
static union u v0;
|
static union u v0;
|
static struct s *p = &v.d.b;
|
static struct s *p = &v.d.b;
|
static struct s *q = &v.e.b;
|
static struct s *q = &v.e.b;
|
|
|
static inline struct s rp (void) { return *p; }
|
static inline struct s rp (void) { return *p; }
|
static inline struct s rq (void) { return *q; }
|
static inline struct s rq (void) { return *q; }
|
static void pq (void) { *p = rq(); }
|
static void pq (void) { *p = rq(); }
|
static void qp (void) { *q = rp(); }
|
static void qp (void) { *q = rp(); }
|
|
|
static void
|
static void
|
init (struct s *sp)
|
init (struct s *sp)
|
{
|
{
|
int i;
|
int i;
|
for (i = 0; i < 256; i++)
|
for (i = 0; i < 256; i++)
|
sp->a[i] = i;
|
sp->a[i] = i;
|
}
|
}
|
|
|
static void
|
static void
|
check (struct s *sp)
|
check (struct s *sp)
|
{
|
{
|
int i;
|
int i;
|
for (i = 0; i < 256; i++)
|
for (i = 0; i < 256; i++)
|
if (sp->a[i] != i)
|
if (sp->a[i] != i)
|
abort ();
|
abort ();
|
}
|
}
|
|
|
void
|
void
|
main_test (void)
|
main_test (void)
|
{
|
{
|
v = v0;
|
v = v0;
|
init (p);
|
init (p);
|
qp ();
|
qp ();
|
check (q);
|
check (q);
|
v = v0;
|
v = v0;
|
init (q);
|
init (q);
|
pq ();
|
pq ();
|
check (p);
|
check (p);
|
exit (0);
|
exit (0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.