diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/20020619-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20020619-1.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020619-1.c b/gcc/testsuite/gcc.c-torture/execute/20020619-1.c new file mode 100644 index 000000000..1a1503e89 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20020619-1.c @@ -0,0 +1,31 @@ +#if (__SIZEOF_INT__ == 4) +typedef int int32; +#elif (__SIZEOF_LONG__ == 4) +typedef long int32; +#else +#error Add target support for int32 +#endif +static int32 ref(void) +{ + union { + char c[5]; + int32 i; + } u; + + __builtin_memset (&u, 0, sizeof(u)); + u.c[0] = 1; + u.c[1] = 2; + u.c[2] = 3; + u.c[3] = 4; + + return u.i; +} + +int main() +{ + int32 b = ref(); + if (b != 0x01020304 + && b != 0x04030201) + abort (); + return 0; +} |