/* { dg-do run } */ /* { dg-require-effective-target hwaddress_exec } */ struct bitmapped_struct { unsigned one : 1; unsigned two : 1; unsigned three : 1; unsigned four : 1; unsigned five : 1; unsigned six : 1; unsigned seven : 1; unsigned eight : 1; }; /* Check that hwasan allows valid bitfield accesses. */ int __attribute__ ((noinline)) handle_unaligned_access (struct bitmapped_struct *foo) { if (foo->three) return foo->four; foo->five = 1; return 1; } int main() { struct bitmapped_struct myvar = {0}; handle_unaligned_access (&myvar); return 0; }