[Bug rtl-optimization/70526] [5/6 Regression] GCC 6 miscompiles Firefox JIT compiler

jandemooij+gccbugs at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Apr 29 14:03:00 GMT 2016


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

--- Comment #17 from Jan de Mooij <jandemooij+gccbugs at gmail dot com> ---
Thank you for looking into this again.

I don't understand comment 16 though:

> _BUT_ here we access D.3125 both as Register (the store)
> and as its declared type TypedOrValueRegister (the load).

So D.3125 is a TypedOrValueRegister right? TypedOrValueRegister is defined as

class TypedOrValueRegister
{
    MIRType type_;
    AlignedStorage2<Register> typed;
...

So IIUC it's wrong to store to |typed| in the constructor, by doing this:

*typed.addr() = reg;

Why is that? Any suggestions on how to fix this on our end?


More information about the Gcc-bugs mailing list