Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1232132

Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm tree

From Alexey Dobriyan <adobriyan@gmail.com>
Newsgroups linux.kernel
Subject Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm tree
Date 2015-09-24 16:30 +0200
Message-ID <qcfH4-5F3-13@gated-at.bofh.it> (permalink)
References <qbSAP-5Me-31@gated-at.bofh.it> <qbSAP-5Me-29@gated-at.bofh.it> <qceUH-4uZ-19@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Thu, Sep 24, 2015 at 4:32 PM, Michal Nazarewicz <mina86@mina86.com> wrote:
> On Wed, Sep 23 2015, Alexey Dobriyan wrote:
>> I've sent kabs() before which didn't go in because it didn't work for
>> INT_MAX et al
>> (don't worry, this abs() doens't as well) but it is nicer that this
>> version in other aspects
>> (hopefully).
>>
>> [PATCH v2] Add kabs()
>> http://marc.info/?l=linux-kernel&m=133518745522740&w=4
>
> Perhaps:
>
> +       (void)(_x)))))));                                               \
>
> instead of:
>
> +       _x))))));                                                       \
>
> at the end.  Since kabs makes no sense for unsigned types it’s best to
> fail with compile-time error than to let user think that the call is
> actually doing something.

I thought so, but the amount of uses like

  unsigned int = abs(unsigned int - unsigned int)

is non trivial. With a few exceptions it is about 170 on
x86_64 allmodconfig. Most of them are correct because abs()
casts to signed first. So if you want to expose such uses,
then you are forced to write

  unsigned int = kabs((int)(unsigned int - unsigned int));

Don't know if it's a good thing.

> Also, you don’t need ({ … }) around the ‘_x < 0 ? -_x : _x’ expression,
> do you?

Seems so, thank you for noticing.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm tree Alexey Dobriyan <adobriyan@gmail.com> - 2015-09-23 15:50 +0200
  Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm  tree Andrew Morton <akpm@linux-foundation.org> - 2015-09-23 22:10 +0200
  Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm tree Michal Nazarewicz <mina86@mina86.com> - 2015-09-24 15:40 +0200
    Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm tree Alexey Dobriyan <adobriyan@gmail.com> - 2015-09-24 16:30 +0200
  Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm tree Linus Torvalds <torvalds@linux-foundation.org> - 2015-09-24 20:10 +0200
    Re: + kernelh-make-abs-work-with-64-bit-types.patch added to -mm tree Michal Nazarewicz <mina86@mina86.com> - 2015-09-25 18:40 +0200

csiph-web