fix building by gcc 4.x with -O2/3/s in some Linux distributions: dereferencing type-punned pointer will break strict-aliasing rules the bug has been introduced in r3065