On 10/03/2012 11:04 AM, Søren Sandmann wrote:
> From: Søren Sandmann Pedersen <s...@redhat.com>
> 
> Apparently GCC 4.5 still warns about "value computed not used" even
> with __attribute__((unused)). Fix this by only doing the compile time
> check on gcc > 4.5.
> 
> Signed-off-by: Soren Sandmann <s...@redhat.com>
> ---
> 
> I need this patch to get qemu to compile with GCC 4.5, but I'm not
> sure if 4.5 is the right compiler version to check against.
> 
>  osdep.h |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/osdep.h b/osdep.h
> index cb213e0..df89552 100644
> --- a/osdep.h
> +++ b/osdep.h
> @@ -41,8 +41,9 @@ typedef signed int              int_fast16_t;
>  #endif
>  
>  /* Convert from a base type to a parent type, with compile time checking.  */
> -#ifdef __GNUC__
> -#define DO_UPCAST(type, field, dev) ( __extension__ ( { \
> +#if defined (__GNUC__) && \
> +    (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 5))
> +#define DO_UPCAST(type, field, dev) ( __extension__ ( {      \
>      char __attribute__((unused)) offset_must_be_zero[ \
>          -offsetof(type, field)]; \
>      container_of(dev, type, field);}))

Try moving the attribute to the end of the declaration,
i.e. just before the semi-colon.


r~


Reply via email to