http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49873
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-07-27 17:00:06 UTC --- I think this code is undefined because you are subtracting two "arrays" which produces an undefined result in C.