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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Cleaned up and further reduced testcase that still ICEs with -O2 -mno-sse:
struct A { int b; int *c; } a;
struct B { struct A *d; };

void
foo (unsigned int x)
{
  struct B b = (struct B) { (struct A *) (__UINTPTR_TYPE__) (x & ~3) };
  a = *b.d;
}

Might be even valid if say the caller makes sure to mmap the pointer in the
first 4GB and then casts to unsigned.

Reply via email to