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.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to