[#1] The signed C integer types int,  long,  long  long  and  the
      corresponding  unsigned  types  are compatible with LIA-1.  If an
      implementation adds support  for  the  LIA-1  exceptional  values
      integer_overflow  and  undefined,  then  those  types  are  LIA-1
      conformant types.
They need not wrap around. People that are actually on the C standards committee have told you this multiple times.

      C's unsigned integer types are "modulo" in the
      LIA-1  sense  in that overflows or out-of-bounds results silently
      wrap. An implementation that defines signed integer types as also
      being  modulo  need  not  detect integer overflow, in which case,
      only integer divide-by-zero need be detected.
This is different from signed types.  Actually I was wrong,

  [10U, UINT_MAX] + [ 1U, 1U ] == ~[ UINT_MIN + 1, 10U ]

Paolo

Reply via email to