Subject: Re: [boost] [Endian] Performance
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2011-09-10 07:29:44
On 09/09/2011 05:45 PM, Beman Dawes wrote:
> On Fri, Sep 9, 2011 at 8:53 AM, John Filo<filo_at_[hidden]> wrote:
>> On 09/09/2011 03:29 AM, Mathias Gaunard wrote:
>>> On 07/09/2011 14:16, John Filo wrote:
>>> I.e. I added:
>>>> #elif USE_BIG
>>>> return *reinterpret_cast<const ubig32_t*>(&src);
>>>> #elif USE_LITTLE
>>>> return *reinterpret_cast<const ulittle32_t*>(&src);
>>>> #elif USE_NATIVE
>>>> return src;
>>> This breaks aliasing rules.
>> I wondered about that; I assumed that since the return statement was the
>> only memory read from memory in the function, and that there were no writes
>> that aliasing wouldn't be a problem. Also, I had -Wall on and GCC didn't
>> complain, so I assumed it was okay. I guess I need to read up on what the
>> exact rules are.
> I'm missing something. Could you please post the full function, without any
> preprocessing statements, where the aliasing issue is arising?
It's arising in the snippet above...
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk