← Back to context

Comment by Asmod4n

11 hours ago

char on linux arm is unsigned, makes for fun surprises when you only ever dealt with x86 and assumed char to be signed everywhere.

This bit us in Chromium. We at least discussed forcing the compiler to use unsigned char on all platforms; I don't recall if that actually happened.

  • I recall that google3 switched to -funsigned-char for x86-64 a long time ago.

    • A cursory Chromium code search does not find anything outside third_party/ forcing either signed or unsigned char.

      I suspect if I dug into the archives, I'd find a discussion on cxx@ with some comments about how doing this would result in some esoteric risk. If I was still on the Chrome team I'd go looking and see if it made sense to reraise the issue now; I know we had at least one stable branch security bug this caused.