http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45397
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-02 09:39:16 UTC --- Note that once can't use signed type in the narrowing + of course, it needs to be unsigned char addition to avoid overflows.