Fix type-punning/non-standard-aliasing issues.
Reported aeons ago as bug 259826, somehow evaded interest up to this point. The issue is essentially that the C++ standard allows compilers to optimize some forms of crazy type changes, which makes the flagged code dangerous in the face of "future optimization improvements". None of the flagged code was so crazy that it couldn't have been implemented in a more straightforward fashion though. The only change I'm not 100%-alright with is the change to dds.cpp, but that code has other issues anyways (though I did test that it still works as much as I could). However because of the risk of breakage I do not intend to backport. Hopefully sufficiently-smart compilers will wait until the next major release. BUG:259826 FIXED-IN:4.11
Loading
Please register or sign in to comment