kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

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 }