I really should look at the C99 spec to see what you are supposed to do to make such casting ok. After all, it would improve (probably only slightly) the generated C code.