http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57489
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- As mentioned before there is an overflow happening so anything can happen. So either do (c-'0') so an overflow does not happen or use -fwrapv so overflow never happens as signed integers are defined to wrap then.