mirror of https://github.com/mosra/magnum.git
Browse Source
It seems that in this particular case `a &= b` is not doing the same as
`a = a & b`. In Release build the expression is miscompiled (it
always resets `a` to zero), in Debug build it triggers ICE:
Object.hpp:280:9: internal compiler error: in make_decl_rtl, at varasm.c:1318
Possibly related to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43880.
Changed to `a = a & b` in all cases, now SceneGraphObject test passes
again. Outside of Object (e.g. in Corrade's EnumSet tests) this is not
reproducible, wtf.
Moreover, classic solution, `-fno-strict-aliasing` didn't help at all
here. Probably caused by some other optimization, IMHO.
1 changed files with 25 additions and 0 deletions
Loading…
Reference in new issue