Fix stdlib/tst-setcontext.c for GCC 12 -Warray-compare
Checks
Context |
Check |
Description |
dj/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
dj/TryBot-32bit |
success
|
Build for i686
|
Commit Message
Building stdlib/tst-setcontext.c fails with GCC mainline:
tst-setcontext.c: In function 'f2':
tst-setcontext.c:61:16: error: comparison between two arrays [-Werror=array-compare]
61 | if (on_stack < st2 || on_stack >= st2 + sizeof (st2))
| ^
tst-setcontext.c:61:16: note: use '&on_stack[0] < &st2[0]' to compare the addresses
The comparison in this case is deliberate, so adjust it as suggested
in that note.
Tested with build-many-glibcs.py (GCC mainline) for aarch64-linux-gnu.
Comments
On 04/10/2021 15:42, Joseph Myers wrote:
> Building stdlib/tst-setcontext.c fails with GCC mainline:
>
> tst-setcontext.c: In function 'f2':
> tst-setcontext.c:61:16: error: comparison between two arrays [-Werror=array-compare]
> 61 | if (on_stack < st2 || on_stack >= st2 + sizeof (st2))
> | ^
> tst-setcontext.c:61:16: note: use '&on_stack[0] < &st2[0]' to compare the addresses
>
> The comparison in this case is deliberate, so adjust it as suggested
> in that note.
>
> Tested with build-many-glibcs.py (GCC mainline) for aarch64-linux-gnu.
>
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> diff --git a/stdlib/tst-setcontext.c b/stdlib/tst-setcontext.c
> index 1b511708c1..1c2925bb76 100644
> --- a/stdlib/tst-setcontext.c
> +++ b/stdlib/tst-setcontext.c
> @@ -58,7 +58,7 @@ f2 (void)
> puts ("start f2");
>
> printf ("&on_stack=%p\n", on_stack);
> - if (on_stack < st2 || on_stack >= st2 + sizeof (st2))
> + if (&on_stack[0] < &st2[0] || &on_stack[0] >= st2 + sizeof (st2))
> {
> printf ("%s: memory stack is not where it belongs!", __FUNCTION__);
> exit (1);
>
@@ -58,7 +58,7 @@ f2 (void)
puts ("start f2");
printf ("&on_stack=%p\n", on_stack);
- if (on_stack < st2 || on_stack >= st2 + sizeof (st2))
+ if (&on_stack[0] < &st2[0] || &on_stack[0] >= st2 + sizeof (st2))
{
printf ("%s: memory stack is not where it belongs!", __FUNCTION__);
exit (1);