URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
#include <stdio.h>
|
#include <stdio.h>
|
#include <stdlib.h>
|
#include <stdlib.h>
|
#include <string.h>
|
#include <string.h>
|
int main ()
|
int main ()
|
{
|
{
|
struct foo {
|
struct foo {
|
int part1: 8;
|
int part1: 8;
|
int nothing : 1;
|
int nothing : 1;
|
int part2 : 5;
|
int part2 : 5;
|
int lots_more_nothing : 3;
|
int lots_more_nothing : 3;
|
int some_padding; /* for 64-bit hosts */
|
int some_padding; /* for 64-bit hosts */
|
float some_more_nothing;
|
float some_more_nothing;
|
double yet_more_nothing;
|
double yet_more_nothing;
|
};
|
};
|
|
|
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
|
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
|
|
|
struct foo* q = (struct foo *) malloc (offsetof (struct foo, some_more_nothing));
|
struct foo* q = (struct foo *) malloc (offsetof (struct foo, some_more_nothing));
|
q->nothing = 1; /* touch q */
|
q->nothing = 1; /* touch q */
|
/* The RHS of the following expression is meant to trigger a
|
/* The RHS of the following expression is meant to trigger a
|
fold-const.c mapping the expression to a BIT_FIELD_REF. It glues
|
fold-const.c mapping the expression to a BIT_FIELD_REF. It glues
|
together the accesses to the two non-neighbouring bitfields into a
|
together the accesses to the two non-neighbouring bitfields into a
|
single bigger boolean test. */
|
single bigger boolean test. */
|
q->lots_more_nothing = (q->part1 == 13 && q->part2 == 7);
|
q->lots_more_nothing = (q->part1 == 13 && q->part2 == 7);
|
free (q);
|
free (q);
|
|
|
|
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.