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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
You are not accessing through the union type but through a pointer to double
and int because u.a and p->d decay to a pointer:

  *(int *) &u.a = 1;
  *(double *) &p->d = 0.0;
  if (*(int *) &u.a != 0)
    {
      abort ();

Reply via email to