qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/3] exynos4210: workaround UBSAN compilation er


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 1/3] exynos4210: workaround UBSAN compilation error
Date: Tue, 16 Jan 2018 15:44:17 +0000

On 16 January 2018 at 15:11, Marc-André Lureau
<address@hidden> wrote:
> gcc 5.4.0-6ubuntu1~16.04.5 build with UBSAN enabled error:
>
>   CC      hw/display/exynos4210_fimd.o
> /home/petmay01/linaro/qemu-for-merges/hw/display/exynos4210_fimd.c: In
> function ‘fimd_get_buffer_id’:
> /home/petmay01/linaro/qemu-for-merges/hw/display/exynos4210_fimd.c:1105:5:
> error: case label does not reduce to an integer constant
>      case FIMD_WINCON_BUF2_STAT:
>
> Because FIMD_WINCON_BUF2_STAT case contains an integer
> overflow, use U suffix to get the unsigned type.

We should note that this is a gcc bug here (we compile with
-fwrapv so integer overflows like this are well-defined)
which we are working around.

> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
>  hw/display/exynos4210_fimd.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/display/exynos4210_fimd.c b/hw/display/exynos4210_fimd.c
> index fd0b2bec65..86e37e93e9 100644
> --- a/hw/display/exynos4210_fimd.c
> +++ b/hw/display/exynos4210_fimd.c
> @@ -98,7 +98,7 @@
>  #define FIMD_WINCON_BUFSTATUS       ((1 << 21) | (1 << 31))
>  #define FIMD_WINCON_BUF0_STAT       ((0 << 21) | (0 << 31))
>  #define FIMD_WINCON_BUF1_STAT       ((1 << 21) | (0 << 31))
> -#define FIMD_WINCON_BUF2_STAT       ((0 << 21) | (1 << 31))
> +#define FIMD_WINCON_BUF2_STAT       ((0 << 21) | (1U << 31))
>  #define FIMD_WINCON_BUFSELECT       ((1 << 20) | (1 << 30))
>  #define FIMD_WINCON_BUF0_SEL        ((0 << 20) | (0 << 30))
>  #define FIMD_WINCON_BUF1_SEL        ((1 << 20) | (0 << 30))
> --
> 2.16.0.rc1.1.gef27df75a1
>

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]