Boost logo

Boost Users :

Subject: Re: [Boost-users] [Spirit] dereferencing type-punned pointer will break strict-aliasing rules
From: Emil Dotchevski (emil_at_[hidden])
Date: 2010-08-11 14:59:21


On Wed, Aug 11, 2010 at 1:37 AM, Roland Bock <rbock_at_[hidden]> wrote:
> Hi,
>
> compiling the attached example with gcc-4.4.3 (Ubuntu 10.4, 64bit) with
>
> -Wall -O3
>
> leads to a long warning message (second attachment), culminating in
>
> boost/1.44/include/boost/function/function_base.hpp:321: warning:
> dereferencing type-punned pointer will break strict-aliasing rules
> boost/1.44/include/boost/function/function_base.hpp:325: warning:
> dereferencing type-punned pointer will break strict-aliasing rules
>
>
> I wonder how I could avoid this without -fno-strict-aliasing or
> -Wno-strict-aliasing?

The code in question is a reinterpret_cast which casts a char pointer
to a user-specified functor type pointer. The interpret cast seems
correct, and the warning seems correct too if not very useful in this
case.

Emil Dotchevski
Reverge Studios, Inc.
http://www.revergestudios.com/reblog/index.php?n=ReCode


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net