https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117354

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Doesn't need -fsanitize=address, just ensuring the _BitInt(256) var is just
8-byte aligned is enough:
struct S {
  unsigned char y;
  _BitInt(256) x;
} s;

__attribute__((noipa)) static void
foo (const char *, _BitInt(256))
{
}

__attribute__((noipa)) static void
bar(_BitInt(256))
{
}

static void
baz (void *p)
{
  foo ("x = %llu\n", s.x);
  __builtin_memcpy (p, &s.x, sizeof s.x);
}

int
main ()
{
  void *ptr = &s.x;
  baz (&s.x);
  bar (*(_BitInt(256) *) ptr);
}

Reply via email to