I have some strange corruption happening with multiple inheritance - it seems that two class members from different bases are overlapping in memory (not in identifier name, to be clear)… so when I change one, the same memory location is changed in the other! I’ve looked at this behavior directly with a memory debugger and this is certainly what is happening. Also there is no diamond inheritance going on.
If it matters, the two members in question are a bool and a float pointer.
This memory bug doesn’t occur with VC++ / ICC compiled code, just GCC.
Google hasn’t been kind to me about this, does anyone know why this is happening?