"
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
<patch>
Index: common.h
===================================================================
--- common.h (revision 4984)
+++ common.h (working copy)
@@ -76,6 +76,13 @@
#define LIBPROTOC_EXPORT
#endif
+
+// __BYTE_ORDER is not defined on Windows, so set it here:
+#if defined(_MSC_VER) && !defined(__BYTE_ORDER) && defined(_M_IX86)
+ #define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+
namespace internal {
// Some of these constants are macros rather than const ints so that
they can
</patch>
--
You received this message because you are subscribed to the Google Groups "Protocol Buffers" group.
To post to this group, send email to prot...@googlegroups.com.
To unsubscribe from this group, send email to protobuf+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.