Boost logo

Boost Users :

Subject: Re: [Boost-users] [Spirit] dereferencing type-punned pointer will break strict-aliasing rules
From: Roland Bock (rbock_at_[hidden])
Date: 2010-08-12 03:45:01


On 08/12/2010 06:05 AM, Joel de Guzman wrote:
> On 8/12/10 2:59 AM, Emil Dotchevski wrote:
>> 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.
>
> Shouldn't this thread have a [function] subject as this seems to be
> about boost.function issue?

Maybe. Not sure since the warning occurred in a Spirit context. My code
does not use anything of boost.function directly.

Based on the hints so far, I'll investigate some more.

Regards,

Roland


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