Mercurial > hg > CbC > CbC_gcc
view libmudflap/testsuite/libmudflap.c/pass23-frag.c @ 32:59194914942b
add documents.
CbC-INSTALL: howto build the gcc for various systems.
CbC-implementation.ja: methods of implementation for CbC's statement.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Dec 2009 14:07:28 +0900 |
parents | a06113de4d67 |
children |
line wrap: on
line source
#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; }