dereferencing type-punned pointer will break strict-aliasing rules fixed