gcc 4.4 fix: union instead of cast