fix gcc aliasing warning