Re: [PATCH v3 1/6] ilog2: create truly constant version for sparse

2018-04-19 Thread Rasmus Villemoes
On 2018-04-18 23:21, Linus Torvalds wrote: > On Wed, Apr 18, 2018 at 1:12 AM, Martin Wilck wrote: >> >> No, it doesn't (gcc 7.3.0). -> https://paste.opensuse.org/27471594 >> It doesn't even warn on an expression like this: >> >> #define SIZE (1<<10) >> static int foo[ilog2(SIZE)]; > > Ok, I t

Re: [PATCH v3 1/6] ilog2: create truly constant version for sparse

2018-04-18 Thread Linus Torvalds
On Wed, Apr 18, 2018 at 1:12 AM, Martin Wilck wrote: > > No, it doesn't (gcc 7.3.0). -> https://paste.opensuse.org/27471594 > It doesn't even warn on an expression like this: > > #define SIZE (1<<10) > static int foo[ilog2(SIZE)]; Ok, I think this is the "random gcc versions act differently"

Re: [PATCH v3 1/6] ilog2: create truly constant version for sparse

2018-04-18 Thread Luc Van Oostenryck
On Wed, Apr 18, 2018 at 10:12:54AM +0200, Martin Wilck wrote: > On Tue, 2018-04-17 at 17:07 -0700, Linus Torvalds wrote: > > On Tue, Apr 17, 2018 at 4:35 PM, Martin Wilck > > wrote: > > > Sparse emits errors about ilog2() in array indices because of the > > > use of > > > __ilog2_32() and __ilog2_

Re: [PATCH v3 1/6] ilog2: create truly constant version for sparse

2018-04-18 Thread Martin Wilck
On Tue, 2018-04-17 at 17:07 -0700, Linus Torvalds wrote: > On Tue, Apr 17, 2018 at 4:35 PM, Martin Wilck > wrote: > > Sparse emits errors about ilog2() in array indices because of the > > use of > > __ilog2_32() and __ilog2_64(), > > If sparse warns about it, then presumably gcc with -Wvla warns

Re: [PATCH v3 1/6] ilog2: create truly constant version for sparse

2018-04-17 Thread Linus Torvalds
On Tue, Apr 17, 2018 at 4:35 PM, Martin Wilck wrote: > Sparse emits errors about ilog2() in array indices because of the use of > __ilog2_32() and __ilog2_64(), If sparse warns about it, then presumably gcc with -Wvla warns about it too? And if thats the case, then __builtin_constant_p() and a t

[PATCH v3 1/6] ilog2: create truly constant version for sparse

2018-04-17 Thread Martin Wilck
Sparse emits errors about ilog2() in array indices because of the use of __ilog2_32() and __ilog2_64(), rightly so (https://www.spinics.net/lists/linux-sparse/msg03471.html). Create a const_ilog2() variant that works with sparse for this scenario. (Note: checkpatch.pl complains about missing pare