|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] tools/kdd: silence gcc 8 warning a different way
On Thu, Apr 12, 2018 at 06:04:49AM -0600, Jan Beulich wrote:
> Older gcc doesn't like "#pragma GCC diagnostic" inside functions.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>
> --- a/tools/debugger/kdd/kdd.c
> +++ b/tools/debugger/kdd/kdd.c
> @@ -695,10 +695,10 @@ static void kdd_handle_read_ctrl(kdd_sta
> KDD_LOG(s, "Request outside of known control space\n");
> len = 0;
> } else {
> -#pragma GCC diagnostic push
> -#pragma GCC diagnostic ignored "-Warray-bounds"
> - memcpy(buf, ((uint8_t *)&ctrl.c32) + offset, len);
> -#pragma GCC diagnostic pop
> + /* Suppress bogus gcc 8 "out of bounds" warning. */
> + const uint8_t *src;
> + asm ("" : "=g" (src) : "0" ((uint8_t *)&ctrl.c32 + offset));
> + memcpy(buf, src, len);
The code looks correct to me:
Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>
This will hopefully also fix the issue Boris reported that some older
gcc (<4.6) doesn't support push and pop.
This is the first time I see inline assembly is used to silence gcc.
;-)
> }
> }
>
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |