[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wgs2DDdckcONG+YbB-GDH2QFCoZJ=Vm+YXxb1moZzuDgQ@mail.gmail.com>
Date: Wed, 25 Oct 2023 07:43:34 -1000
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Vasily Gorbik <gor@...ux.ibm.com>
Cc: Sebastian Reichel <sebastian.reichel@...labora.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>,
David Laight <David.Laight@...lab.com>,
linux-clk@...r.kernel.org, linux-kernel@...r.kernel.org,
Niklas Schnelle <schnelle@...ux.ibm.com>, kernel@...labora.com
Subject: Re: [PATCH v4 1/3] math.h: add DIV_ROUND_UP_NO_OVERFLOW
On Wed, 25 Oct 2023 at 05:05, Vasily Gorbik <gor@...ux.ibm.com> wrote:
>
> You probably want
>
> #define __div_round_up(n,d) _Generic((n)+(d), \
> unsigned long long: __div_round_up_ull, \
> long long: __div_round_up_ll, \
> unsigned long: __div_round_up_ul, \
> long: __div_round_up_l, \
> unsigned int: __div_round_up_u, \
> int: __div_round_up_i)(n,d)
>
> to avoid early type-checking for expressions that will be discarded
> and prevent errors like:
Ack. I noticed that later when I tried to do a bigger config build -
the compiler would warn about the implicit truncation of the integer
arguments (for the cases where they weren't used).
> Plus typos fixes below passes allyesconfig for s390, 32-bit x86 and arm.
Lovely.
It would have been even better if somebody told me that I was stupid
and there was some nice trick to it, but at least the _Generic()
approach doesn't seem broken - just a few tweaks needed.
Linus
Powered by blists - more mailing lists