Warner Losh <imp(a)bsdimp.com> wrote:
|On Wed, Nov 8, 2017 at 9:07 AM, Nemo <[1]cym224(a)gmail.com[/1]> wrote:
|On 6 November 2017 at 19:36, Ron Natalie <[2]ron(a)ronnatalie.com[/2]> wrote:
|> It’s worse than that. “char” is defined as neither signed nor unsigned.
|> The signedness is implementation defined. This was why we have \
|> the inane
|> “signed” keyword.
...
|What was that story about porting an early UNIX to a machine with
|different char polarity? I dimly recall only a few problems.
|
|Doesn't even have to be very early... There's lots of 'assume char \
|is signed bugs' in even modern code. So many that ARM gave up on the \
|idea that
|unsigned char was good (since the underlying ARM architecture supported \
|it better) and their modern ABIs are all signed char. The other thing \
..
|When I was working on FreeBSD/arm only a decade ago, I'd routinely \
|hit both of these issues...
I had one of those on Debian/arm64 (Bug#806300) no sooner but
November 2015, very friendly reported as
|This symptom and the pattern of failures is typical of programs that
|assume that plain char is signed. Fortunately there's a warning in
|the build log that tells you exactly where the bug is:
(in fact already mentioned in some hidden archlinux forum, and
also to me in private by a Swede, but i failed to see, and forgot,
hu-hu!!, all in March 2015) introduced in December 2013 when
blindly fixing CC warnings (Many: fix gcc 4.8.2 -fstrict-overflow
-Wstrict-overflow=5). Testing char not int against EOF is bad.
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)