| Deutsch English Français Italiano |
|
<87r0b7c5ti.fsf@bsb.me.uk> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse <ben@bsb.me.uk> Newsgroups: comp.lang.c Subject: Re: What is your opinion about unsigned int u = -2 ? Date: Fri, 02 Aug 2024 16:17:29 +0100 Organization: A noiseless patient Spider Lines: 34 Message-ID: <87r0b7c5ti.fsf@bsb.me.uk> References: <v8dfo9$1k7cg$1@dont-email.me> <pan$d2c8a$8c54ac9f$29a202e0$12c6ce86@invalid.invalid> <87bk2cecan.fsf@bsb.me.uk> <v8inds$2qpqh$1@dont-email.me> <v8iqnr$7l3c$1@news.xmission.com> <v8irje$2rolg$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Fri, 02 Aug 2024 17:17:30 +0200 (CEST) Injection-Info: dont-email.me; posting-host="0a4f19eb014006a9905721b780020a95"; logging-data="3026806"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19AeVfcy2CVz890YSVCBhs5C6nRisZJZRs=" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:rECNqqXcfMcuQUTSTrntCM5M0uE= sha1:5R+l9+AVV1Ut5azvcOXEzbuN71w= X-BSB-Auth: 1.976680312531612ea20f.20240802161729BST.87r0b7c5ti.fsf@bsb.me.uk Bytes: 2592 Bart <bc@freeuk.com> writes: > On 02/08/2024 15:33, Kenny McCormack wrote: >> In article <v8inds$2qpqh$1@dont-email.me>, >> Thiago Adams <thiago.adams@gmail.com> wrote: >> ... >>> So it seams that anything is ok for unsigned but not for signed. >>> Maybe because all computer gave same answer for unsigned but this is not >>> true for signed? >> I think it is because it wants to (still) support representations other >> than 2s complement. I think POSIX requires 2s complement, and I expect the >> C standard to (eventually) follow suit. >> > > C23 assumes 2s complement. However overflow on signed integers will still > be considered UB: too many compilers depend on it. > > But even if well-defined (eg. that UB was removed so that overflow just > wraps as it does with unsigned), some here, whose initials may or may not > be DB, consider such overflow Wrong and a bug in a program. > > However they don't consider overflow of unsigned values wrong at all, > simply because C allows that behaviour. > > But I don't get it. If my calculation gives the wrong results because I've > chosen a u32 type instead of u64, that's just as much a bug as using i32 > instead of i64. I don't think *anyone* considers a program that produces the wrong result to be have any less buggy simply because of the types used. You are ascribing to other views that I have never seen anyone express. -- Ben.