The loss of data is intentional.  I've never seen MSVC or any other compiler
complain about this before.  Feel free to send a patch adding the bit masks
it asks for.

On Tue, Mar 23, 2010 at 8:47 AM, Nathan McDaniel <nmcdanie...@gmail.com>wrote:

>
> I am getting the following run-time check failure in coded_stream.h at
> the following function:
>
> "
> inline uint8* CodedOutputStream::WriteLittleEndian32ToArray(uint32
> value,
>                                                            uint8*
> target) {
> #if !defined(PROTOBUF_DISABLE_LITTLE_ENDIAN_OPT_FOR_TEST) && \
>    defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN
>  memcpy(target, &value, sizeof(value));
> #else
>  target[0] = static_cast<uint8>(value);   ////////////////////////
> This is where the error hits.
>  target[1] = static_cast<uint8>(value >>  8);
>  target[2] = static_cast<uint8>(value >> 16);
>  target[3] = static_cast<uint8>(value >> 24);
> #endif
>  return target + sizeof(value);
> }
> "
>
>
> Visual Studio Error:
> "
> Run-Time Check Failure #1 - A cast to a smaller data type has caused a
> loss of data. If this was intentional, you should mask the source of
> the cast with the appropriate bitmask. For example:
>    char c = (i & 0xFF);
> Changing the code in this way will not affect the quality of the
> resulting optimized code.
> "
>
> Has anyone seen this? Did I do something wrong or is this something
> that needs to change in the library? I think--but have not yet
> verified--that I can disable this when compiling the protocol buffer
> library.
>
> Screenshot here:
> http://www.postimage.org/image.php?v=gxpNWti
>
> This post is similar to the problem I'm having:
>
> http://stackoverflow.com/questions/161369/switch-off-run-time-check-in-visual-studio
>
>
>
> Thank you,
>
> Nathan
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To post to this group, send email to proto...@googlegroups.com.
> To unsubscribe from this group, send email to
> protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/protobuf?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to