avoid strict-aliasing error