/usr/lib/mlton/include/util/endian.h is in mlton-basis 20100608-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | /* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
* Jagannathan, and Stephen Weeks.
* Copyright (C) 1997-2000 NEC Research Institute.
*
* MLton is released under a BSD-style license.
* See the file MLton-LICENSE for details.
*/
static inline bool isBigEndian(void) {
union {
uint16_t x;
uint8_t y;
} __attribute__((__may_alias__)) z;
/* gcc optimizes the following code to just return the result. */
z.x = 0xABCDU;
if (z.y == 0xAB) return TRUE; /* big endian */
if (z.y == 0xCD) return FALSE; /* little endian */
die ("Could not detect endian --- neither big nor little!\n");
return 0;
}
static inline bool isLittleEndian(void) {
return not (isBigEndian());
}
|