avoid strict-aliasing errors