After this patch, I am seeing this -Warray-parameter error:
In file included from ../include/pthread.h:1,
from ../sysdeps/nptl/thread_db.h:25,
from ../nptl/descr.h:32,
from ../sysdeps/aarch64/nptl/tls.h:44,
from ../include/errno.h:25,
from ../sysdeps/unix/sysv/linux/sysdep.h:23,
from ../sysdeps/unix/sysv/linux/generic/sysdep.h:22,
from ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:24,
from <stdin>:1:
../sysdeps/nptl/pthread.h:734:47: error: argument 1 of type ‘struct
__jmp_buf_tag *’ declared as a pointer [-Werror=array-parameter=]
734 | extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask)
__THROWNL;
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from ../include/setjmp.h:2,
from ../nptl/descr.h:24,
from ../sysdeps/aarch64/nptl/tls.h:44,
from ../include/errno.h:25,
from ../sysdeps/unix/sysv/linux/sysdep.h:23,
from ../sysdeps/unix/sysv/linux/generic/sysdep.h:22,
from ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:24,
from <stdin>:1:
../setjmp/setjmp.h:54:46: note: previously declared as an array ‘struct
__jmp_buf_tag[1]’
54 | extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask)
__THROWNL;
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
cc1: all warnings being treated as errors
The build/host/target setup is:
Build: x86_64-linux-gnu (Ubuntu 18.04)
Host: x86_64-linux-gnu
Target: aarch64-none-linux-gnu, aarch64_be-none-linux-gnu,
arm-none-linux-gnueabi, arm-none-linux-gnueabihf
Kind regards
Vasee
On 20/09/2020, 01:02, "Gcc-patches on behalf of Martin Sebor via Gcc-patches"
<[email protected] on behalf of [email protected]> wrote:
On 9/17/20 4:38 PM, Joseph Myers wrote:
> On Wed, 16 Sep 2020, Martin Sebor via Gcc-patches wrote:
>
>> Attached is an updated revision of the patch. Besides the tweaks
>> above it also contains a cosmetic change to the warning issued
>> for mismatches in unspecified VLA bounds: it points at the decl
>> with more of them to guide the user to specify them rather than
>> make them all unspecified.
>
> The previous version of the patch had a while loop as previously discussed
> to handle skipping multiple consecutive cdk_attrs.
>
> + next = pd->declarator;
> + while (next && next->kind == cdk_attrs)
> + next = next->declarator;
>
> This version is back to an "if", but I don't see anything else in the new
> version of that function that actually means the "if" would skip multiple
> consecutive cdk_attrs as desired.
>
> The patch is OK with the "while" restored there. If for some reason the
> "while" breaks something, we'll need to look in more detail at exactly
> what case isn't being handled correctly by "while".
I guess it was the result of an experiment, trying to see if I could
break it with the 'if'. I (hope I) put it back and pushed the whole
series. I had to squash patches 1 and 2 because of a dependency that
I had missed.
Thanks for the review, by the way. I think the signature validation
we've ended up with is quite a bit more comprehensive than the first
attempt.
Martin