void abort(void);
void exit(int);

typedef struct
{
    unsigned char a : 2;
    unsigned char b : 3;
    unsigned char c : 1;
    unsigned char d : 1;
    unsigned char e : 1;
} a_struct;

int foo(flags)
a_struct *flags;
{
    return (flags->c != 0 || flags->d != 1 || flags->e != 1 || flags->a != 2 || flags->b != 3);
}

int main(void) {
    a_struct flags;

    flags.c = 0;
    flags.d = 1;
    flags.e = 1;
    flags.a = 2;
    flags.b = 3;

    if (foo(&flags) != 0)
        abort();
    else
        exit(0);
}
