|
Boost Users : |
From: Daryle Walker (darylew_at_[hidden])
Date: 2005-12-16 13:36:50
On 12/16/05 1:04 PM, "Clarke, Trevor" <tclarke_at_[hidden]> wrote:
> The problem is that the code does not state that it doesn't care if those bits
> disappear (via masking) so a warning is thrown stating that you are loosing
> data. Similar to compiler warnings if you do this:
>
> int foo(123456789);
> char bar = foo; // instead of bar = static_cast<char>(foo);
>
> The difference is, the masking warning is a run time check which pops up a
> dialog every time the code executes and is thus not as easy to ignore as the
> compile warning.
If we do:
int32 g = 0x01234567;
assert( g << 8 == 0x23456700 );
The "01" part has already been shifted away. No amount of masking will fix
the data loss that has already occurred. Or do you mean to mask first:
assert ( (g & 0x00FFFFFF) << 8 == 0x23456700 );
which gets rid of the "01" part, resetting it to zero, before obliterating
it with the shift? All the mask would do is shut up the RTC from a nuisance
warning; it doesn't add any worth to the code. Is there something like a
"#pragma disable" to shut up RTC around this code, or would you have to
deactivate RTC?
> -----Original Message-----
[I wrote (on 2005-12-16T12:38)]
>> On 12/14/05 2:32 PM, "Clarke, Trevor" <tclarke_at_[hidden]> wrote:
>>
>>> There are a few places in crc.hpp where the following happens:
>>> static value_type shift( value_type rem )
>>> { return rem << CHAR_BIT; }
>>>
>>> The problem is, if run time checking is active in VS2003 (I assume 2005 has
>>> the same issue), a pop-up warning is issued during every call to the
>>> function as data is lost. (that¹s the intent in fact). The fix is to mask
>>> (rem << CHAR_BIT) & 0xffff (or whatever the appropriate mask value is for
>>> value_type). Is this a known issue? It¹s technically not a bug but could
>>> cause some annoyances for anybody using rtc. Should this be changed?
>>
>> What's the point of the mask? The affected bits have already gone to
>> oblivion at that point. Maybe RTC has a bug?
-- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com
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