#include #include struct bitfield { unsigned int field1 : 1; unsigned int field2 : 1; unsigned int field3 : 1; }; __attribute__((noinline)) static void set_field1_and_field2(struct bitfield *b) { b->field1 = 1; b->field2 = 1; } __attribute__((noinline)) static struct bitfield * new_bitfield(void) { struct bitfield *b = (struct bitfield *)malloc(sizeof(*b)); b->field3 = 1; set_field1_and_field2(b); return b; } int main(void) { struct bitfield *b = new_bitfield(); if (b->field3 != 1) __builtin_abort (); return 0; }