iunop_neg_unsigned.c (326B)
1 /* Arithmetic negate at 32-bit unsigned: -(unsigned)x is well-defined modular 2 * wraparound (no UB). -x emits `neg w`. volatile defeats folding. 3 * 0u - 0xFFFFFFD6 = 0x2A = 42 (two's complement of -42). */ 4 int test_main(void) { 5 volatile unsigned a = 0xFFFFFFD6u; /* == (unsigned)-42 */ 6 unsigned n = -a; 7 return (int)n; 8 }