diff --git a/include/osg/Endian b/include/osg/Endian index 7673cdfb3..9476ef13c 100644 --- a/include/osg/Endian +++ b/include/osg/Endian @@ -26,9 +26,14 @@ enum Endian inline Endian getCpuByteOrder() { - static char big_endian_1[2] = { 0, 1 }; + union { + char big_endian_1[2]; + short is_it_really_1; + } u; + u.big_endian_1[0] = 0; + u.big_endian_1[1] = 1; - if ( (*((short*) big_endian_1)) == 1) + if (u.is_it_really_1 == 1) return BigEndian; else return LittleEndian;