diff options
Diffstat (limited to 'gcc/testsuite/consistency.vlad/layout/endian.c')
-rwxr-xr-x | gcc/testsuite/consistency.vlad/layout/endian.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/consistency.vlad/layout/endian.c b/gcc/testsuite/consistency.vlad/layout/endian.c new file mode 100755 index 0000000..7bd1216 --- /dev/null +++ b/gcc/testsuite/consistency.vlad/layout/endian.c @@ -0,0 +1,45 @@ +#include <stdio.h> + +static int w[2]; +static char * bytes; + +int main(void) +{ + printf ("+++Endian test:\n"); + if (sizeof (int) == 2) + { + w[0] = 0x4142; + w[1] = 0; + bytes = (char *) w; + if (strcmp(bytes, "AB") == 0) + printf ("big endian\n"); + else if (strcmp(bytes, "BA") == 0) + printf ("little endian\n"); + else + { + printf ("nor big nor little endian\n"); + return 1; + } + } + else if (sizeof (int) == 4) + { + w[0] = 0x41424344; + w[1] = 0; + bytes = (char *) w; + if (strcmp(bytes, "ABCD") == 0) + printf ("big endian\n"); + else if (strcmp(bytes, "DCBA") == 0) + printf ("little endian\n"); + else + { + printf ("nor big nor little endian\n"); + return 1; + } + } + else + { + printf ("unexpected size of int\n"); + return 1; + } + return 0; +} |