http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53352
--- Comment #3 from Meador Inge <meadori at codesourcery dot com> 2012-05-17 16:42:04 UTC --- It can easily be seen my inspection of the assembly code. As I mentioned before, 0xFF00 gets passed to 'foo'. Anyway, I posted an executable case along with my patch here: http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01042.html.