[dpdk-dev] [PATCH v2] examples/vhost: fix strict aliasing error on gcc 4.4.7

Bruce Richardson bruce.richardson at intel.com
Wed Dec 9 11:32:11 CET 2015


On Wed, Dec 09, 2015 at 09:39:59AM +0000, Pablo de Lara wrote:
> From: "De Lara Guarch, Pablo" <pablo.de.lara.guarch at intel.com>
> 
> Fixes following error on gcc 4.4.7:
> 
> make: Entering directory `/tmp/dpdk-tmp/examples/vhost'
>   CC main.o
> cc1: warnings being treated as errors
> /tmp/dpdk-tmp/examples/vhost/main.c: In function ‘new_device’:
> /tmp/dpdk-tmp/x86_64-native-linuxapp-gcc/include/rte_ring.h:740: error:
>     dereferencing pointer ‘mbuf.486’ does break strict-aliasing rules
> /tmp/dpdk-tmp/examples/vhost/main.c:1503: note: initialized from here
> ...
> /tmp/dpdk-tmp/examples/vhost/main.c:1503: note: initialized from here
> /tmp/dpdk-tmp/x86_64-native-linuxapp-gcc/include/rte_ring.h:740: error:
>     dereferencing pointer ‘({anonymous})’ does break strict-aliasing rules
> /tmp/dpdk-tmp/examples/vhost/main.c:1804: note: initialized from here
> make[1]: *** [main.o] Error 1
> 
> Fixes: d19533e8 ("examples/vhost: copy old vhost example")
> 
> Reported-by: Qian Xu <qian.q.xu at intel.com>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
> ---
> Changes in v2:
> - Remove unnecessary casting

You've remove some, but not all unnecessary casting. You don't need a cast when
assigning void * to any other type, so you can remove the mbuf casts too.

/Bruce



More information about the dev mailing list