URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [libmudflap/] [testsuite/] [libmudflap.c/] [pass23-frag.c] - Rev 826
Compare with Previous | Blame | View Log
#include <stdio.h> #include <stdlib.h> #include <string.h> int main () { struct foo { int part1: 8; int nothing : 1; int part2 : 5; int lots_more_nothing : 3; int some_padding; /* for 64-bit hosts */ float some_more_nothing; double yet_more_nothing; }; #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) struct foo* q = (struct foo *) malloc (offsetof (struct foo, some_more_nothing)); q->nothing = 1; /* touch q */ /* The RHS of the following expression is meant to trigger a fold-const.c mapping the expression to a BIT_FIELD_REF. It glues together the accesses to the two non-neighbouring bitfields into a single bigger boolean test. */ q->lots_more_nothing = (q->part1 == 13 && q->part2 == 7); free (q); return 0; }