[SLOF] [PATCH] lib/libnet/ipv6: Silence compiler warning from Clang

Thomas Huth thuth at redhat.com
Fri Jul 1 03:02:48 AEST 2022

On 28/06/2022 17.19, Segher Boessenkool wrote:
> Hi!
> On Tue, Jun 28, 2022 at 06:40:23PM +1000, Alexey Kardashevskiy wrote:
>> On 6/28/22 16:34, Thomas Huth wrote:
>>> On 28/06/2022 00.05, Segher Boessenkool wrote:
>>>> On Mon, Jun 27, 2022 at 10:26:32AM +0200, Thomas Huth wrote:
>>>>> When compiling the libnet code with Clang (e.g. for the s390-ccw bios),
>>>>> it complains with the following warning:
>>>>>    ipv6.c:447:18: warning: variable length array folded to constant array
>>>>>     as an extension [-Wgnu-folding-constant]
>>>>>                   unsigned short raw[ip6size];
>>>>>                                  ^
>>>>> The warning is completely harmless, of course. Anyway let's rewrite the
>>>>> code a little bit to make the compiler silent again.
>>>> This makes the code worse though :-(
>>>> You could shut off the silly warning instead?  Clang claims to be
>>>> compatible to GCC, and GCC explicitly allows variable-length auto
>>>> arrays even in C90 mode.  This is documented, too.
>>> Ok, can do, SLOF itself cannot be compiled with Clang anyway, so it
>>> likely makes more sense indeed to disable this warning in the s390-ccw
>>> bios that uses SLOF's libnet.
>> I rather like the initial idea of getting rid of ip6size, I tend to
>> (incorrectly) read "ip6size" as "size of the ipv6 header in bytes" (as
>> sizes are almost always bytes) which it is not here.
> It could use a better name no matter what, it doesn't even say "header" :-)
> Using ARRAY_SIZE this will probably look a lot better, with or without
> the change?

FYI, I'm going with this patch for the s390-ccw bios:


I think that's the right way to go since SLOF cannot be compiled with Clang yet.


More information about the SLOF mailing list