Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > comp.lang.c > #387268

Re: What is your opinion about unsigned int u = -2 ?

From Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups comp.lang.c
Subject Re: What is your opinion about unsigned int u = -2 ?
Date 2024-08-02 11:48 -0700
Organization None to speak of
Message-ID <87r0b6g3qx.fsf@nosuchdomain.example.com> (permalink)
References (1 earlier) <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>

Show all headers | View raw


Bart <bc@freeuk.com> writes:
[...]
> 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.

There is a difference in that unsigned "overflow" might give
(consistent) results you didn't want, but signed overflow has undefined
behavior.

There are perhaps infinitely many ways to get wrong results.  It doesn't
necessarily matter whether you get those wrong answers via code that has
well defined behavior or code that has unspecified or undefined
behavior.

The standard had to say *something* about the behavior of arithmetic
operations that yield results outside the range of the relevant type.
It happens to say that the behavior is undefined for signed integer
types and well defined for unsigned integer types.  It is to a large
extent an arbitrary choice (though there are historical reasons for it),
but it means that programmers are free to take advantage of things like
`-1u`.  It also means they can be bitten by that behavior if they're not
careful.

Incidentally, what the standard says is that unsigned operations do not
overflow at all.  It could equivalently have said that they do overflow
and the behavior of overflow is well defined.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-07-31 10:55 -0300
  Re: What is your opinion about unsigned int u = -2 ? Ben Bacarisse <ben@bsb.me.uk> - 2024-07-31 20:29 +0100
    Re: What is your opinion about unsigned int u = -2 ? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-08-11 12:33 -0700
      Re: What is your opinion about unsigned int u = -2 ? Vir Campestris <vir.campestris@invalid.invalid> - 2024-08-11 21:08 +0100
        Re: What is your opinion about unsigned int u = -2 ? Richard Damon <richard@damon-family.org> - 2024-08-11 16:45 -0400
        Re: What is your opinion about unsigned int u = -2 ? James Kuyper <jameskuyper@alumni.caltech.edu> - 2024-08-11 16:53 -0400
          Re: What is your opinion about unsigned int u = -2 ? Vir Campestris <vir.campestris@invalid.invalid> - 2024-08-12 11:47 +0100
        Re: What is your opinion about unsigned int u = -2 ? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-08-11 23:07 -0700
  Re: What is your opinion about unsigned int u = -2 ? James Kuyper <jameskuyper@alumni.caltech.edu> - 2024-07-31 17:17 -0400
  Re: What is your opinion about unsigned int u = -2 ? Blue-Maned_Hawk <bluemanedhawk@invalid.invalid> - 2024-08-01 06:34 +0000
    Re: What is your opinion about unsigned int u = -2 ? Ben Bacarisse <ben@bsb.me.uk> - 2024-08-01 12:02 +0100
      Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 10:36 -0300
        Re: What is your opinion about unsigned int u = -2 ? gazelle@shell.xmission.com (Kenny McCormack) - 2024-08-02 14:33 +0000
          Re: What is your opinion about unsigned int u = -2 ? Bart <bc@freeuk.com> - 2024-08-02 15:48 +0100
            Re: What is your opinion about unsigned int u = -2 ? Ben Bacarisse <ben@bsb.me.uk> - 2024-08-02 16:17 +0100
            Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 15:39 -0300
              Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 15:58 -0300
            Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-02 11:48 -0700
              Re: What is your opinion about unsigned int u = -2 ? James Kuyper <jameskuyper@alumni.caltech.edu> - 2024-08-02 15:21 -0400
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 22:03 -0300
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 22:12 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-02 18:31 -0700
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 22:50 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-02 19:29 -0700
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-03 09:36 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-03 16:10 -0700
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-03 22:46 -0300
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-03 23:04 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-02 18:25 -0700
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 22:44 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-02 19:04 -0700
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-02 23:27 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-02 19:40 -0700
                Re: What is your opinion about unsigned int u = -2 ? David Brown <david.brown@hesbynett.no> - 2024-08-03 19:43 +0200
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-03 14:46 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-03 16:52 -0700
                Re: What is your opinion about unsigned int u = -2 ? David Brown <david.brown@hesbynett.no> - 2024-08-03 19:34 +0200
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-03 14:51 -0300
                Re: What is your opinion about unsigned int u = -2 ? Thiago Adams <thiago.adams@gmail.com> - 2024-08-03 15:30 -0300
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-03 16:46 -0700
                Re: What is your opinion about unsigned int u = -2 ? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-08-11 13:57 -0700
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-11 14:53 -0700
                Re: What is your opinion about unsigned int u = -2 ? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-08-03 16:19 -0700
              Re: What is your opinion about unsigned int u = -2 ? Bonita Montero <Bonita.Montero@gmail.com> - 2024-08-09 20:10 +0200
            Re: What is your opinion about unsigned int u = -2 ? David Brown <david.brown@hesbynett.no> - 2024-08-03 19:17 +0200
          Re: What is your opinion about unsigned int u = -2 ? Bonita Montero <Bonita.Montero@gmail.com> - 2024-08-04 20:29 +0200
            Re: What is your opinion about unsigned int u = -2 ? Lawrence D'Oliveiro <ldo@nz.invalid> - 2024-08-07 23:48 +0000
              Re: What is your opinion about unsigned int u = -2 ? David Brown <david.brown@hesbynett.no> - 2024-08-08 19:47 +0200
                Re: What is your opinion about unsigned int u = -2 ? Bonita Montero <Bonita.Montero@gmail.com> - 2024-08-09 20:08 +0200
                Re: What is your opinion about unsigned int u = -2 ? David Brown <david.brown@hesbynett.no> - 2024-08-09 20:19 +0200
                Re: What is your opinion about unsigned int u = -2 ? Bonita Montero <Bonita.Montero@gmail.com> - 2024-08-09 21:18 +0200
                Re: What is your opinion about unsigned int u = -2 ? David Brown <david.brown@hesbynett.no> - 2024-08-09 21:40 +0200
                Re: What is your opinion about unsigned int u = -2 ? Richard Damon <richard@damon-family.org> - 2024-08-09 21:16 -0400
    Re: What is your opinion about unsigned int u = -2 ? Bonita Montero <Bonita.Montero@gmail.com> - 2024-08-04 18:16 +0200

csiph-web