#if (__SIZEOF_INT__ == 2) #define TESTVALUE 0x1234 #else #define TESTVALUE 0x12345678 #endif static void foo (unsigned int x, void *p) { __builtin_memcpy (p, &x, sizeof x); } void bar (int type, void *number) { switch (type) { case 1: foo (TESTVALUE, number); break; case 7: foo (0, number); break; case 8: foo (0, number); break; case 9: foo (0, number); break; } } int main (void) { unsigned int x; bar (1, &x); if (x != TESTVALUE) __builtin_abort (); return 0; }