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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |alias

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I am not 100% sure but I think the problem is related to this code (note I
added that asm comment there):
```
    V *P = u.i;
    V *E = P + InlineSlots;
    for (; P != E; ++P) {
        if (P->v != EmptyKey) {
            TmpEnd->v = P->v;
            ++TmpEnd;
        }
    }

    Small = false;
    //asm("":"+m"(*this)::"memory");
    u.o = LargeRep{new V[128], 128};
```

The problem is most likely the read from u.i is happening after the store to
u.o.

Reply via email to