Re: [PATCH 01/21] powerpc: Remove warning on array size when empty

From: Mathieu Malaterre
Date: Tue Feb 27 2018 - 02:44:34 EST


On Tue, Feb 27, 2018 at 8:33 AM, Christophe LEROY
<christophe.leroy@xxxxxx> wrote:
>
>
> Le 27/02/2018 Ã 08:25, Mathieu Malaterre a Ãcrit :
>>
>> On Mon, Feb 26, 2018 at 3:45 PM, Andy Shevchenko
>> <andy.shevchenko@xxxxxxxxx> wrote:
>>>
>>> On Mon, Feb 26, 2018 at 4:44 PM, Andy Shevchenko
>>> <andy.shevchenko@xxxxxxxxx> wrote:
>>>>
>>>> On Sun, Feb 25, 2018 at 7:22 PM, Mathieu Malaterre <malat@xxxxxxxxxx>
>>>> wrote:
>>>
>>>
>>>>> static void __init check_cpu_feature_properties(unsigned long node)
>>>>> {
>>>>> - unsigned long i;
>>>>> struct feature_property *fp = feature_properties;
>>>>> const __be32 *prop;
>>>>>
>>>>
>>>> Much simpler is just add
>>>>
>>>> if (ARRAY_SIZE() == 0)
>>>> return;
>>>>
>>>>> - for (i = 0; i < ARRAY_SIZE(feature_properties); ++i, ++fp) {
>>>>> + for (; fp != feature_properties +
>>>>> ARRAY_SIZE(feature_properties); ++fp) {
>>>
>>>
>>> ...or convert to while(), which will be more readable.
>>
>>
>> So you'd prefer something like:
>>
>> while (fp < feature_properties + ARRAY_SIZE(feature_properties)) {
>> ...
>> ++fp;
>> }
>>
>> right ?
>>
>
>
> Why not do as suggested by Segher, ie just replace < by != in the original
> form ?

I can do that.

> Or add in front:
> if (!ARRAY_SIZE(feature_properties))
> return;

(not tested) I believe the compiler still go over the for() loop and
will complain about the original unsigned comparison.

> Christophe