|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH][4.15] crypto: adjust rijndaelEncrypt() prototype for gcc11
Jan Beulich writes ("Re: [PATCH][4.15] crypto: adjust rijndaelEncrypt()
prototype for gcc11"):
> On 03.03.2021 20:09, Julien Grall wrote:
> > On 01/03/2021 07:57, Jan Beulich wrote:
> >> The upcoming release complains, not entirely unreasonably:
> >>
> >> In file included from rijndael.c:33:
> >> .../xen/include/crypto/rijndael.h:55:53: note: previously declared as
> >> 'const unsigned char[]'
> >> 55 | void rijndaelEncrypt(const unsigned int [], int, const
> >> unsigned char [],
> >> |
> >> ^~~~~~~~~~~~~~~~~~~~~~
> >> rijndael.c:865:8: error: argument 4 of type 'u8[16]' {aka 'unsigned
> >> char[16]'} with mismatched bound [-Werror=array-parameter=]
> >> 865 | u8 ct[16])
I think this is an erroneous compiler warning.
It has been idiomatic in some codebases for a long time to write
const unsigned char[]
as a formal parameter for an array (of whatever size).
> >> .../xen/include/xen/string.h:101:27: error: '__builtin_memcmp' specified
> >> bound 4 exceeds source size 0 [-Werror=stringop-overread]
> >> 101 | #define memcmp(s1, s2, n) __builtin_memcmp(s1, s2, n)
> >> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> >> mpparse.c:722:13: note: in expansion of macro 'memcmp'
> >> 722 | if (memcmp(mpf->mpf_signature, "_MP_", 4) == 0 &&
> >> | ^~~~~~
> >>
> >> Clearly neither the 1st nor the 2nd argument have a "source size" of 0.
> >
> > It looks like there is a report on the redhat bug tracker for it [1]. Do
> > you know if there is a bug report on the GCC tracker as well?
>
> I have no idea, to be honest.
This erroneous message makes me think that there is simply a bug in
this version of GCC, where formal parameters declared as
const unsigned char[]
are treated as
const unsigned char[0]
rather than as
const unsigned char*
Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |