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

From: Mathieu Malaterre
Date: Tue Feb 27 2018 - 12:26:04 EST


On Tue, Feb 27, 2018 at 4:52 PM, Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
> On Tue, Feb 27, 2018 at 9:44 AM, Mathieu Malaterre <malat@xxxxxxxxxx> wrote:
>> On Tue, Feb 27, 2018 at 8:33 AM, Christophe LEROY
>> <christophe.leroy@xxxxxx> wrote:
>
>>>>>> Much simpler is just add
>>>>>>
>>>>>> if (ARRAY_SIZE() == 0)
>>>>>> return;
>
>>> 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.
>
> Did you run tests? Did you look into object file?

The goal of this series is simply to remove warning treated as error.

I tried from home and I can still see the error using gcc 6.3.0, so
the original for() loop needs to be rewritten.

CC arch/powerpc/kernel/prom.o
arch/powerpc/kernel/prom.c: In function âcheck_cpu_feature_propertiesâ:
arch/powerpc/kernel/prom.c:301:16: error: comparison of unsigned
expression < 0 is always false [-Werror=type-limits]
for (i = 0; i < ARRAY_SIZE(feature_properties); ++i, ++fp) {
^
cc1: all warnings being treated as errors


> In kernel we much rely on the compiling away the code which is
> deterministically not in use.
> Here I'm pretty sure it will compile away entire function.
>
> --
> With Best Regards,
> Andy Shevchenko