By using a more fundamental value, these two definitions of the macro
can be made the same, so only need one, common to both platforms
* real information */
#define UTF_ACCUMULATION_SHIFT 6
-/* 2**UTF_ACCUMULATION_SHIFT - 1 */
-#define UTF_CONTINUATION_MASK ((U8)0x3f)
-
#if UVSIZE >= 8
# define UTF8_QUAD_MAX UINT64_C(0x1000000000)
#endif /* EBCDIC vs ASCII */
+/* 2**UTF_ACCUMULATION_SHIFT - 1 */
+#define UTF_CONTINUATION_MASK ((U8) ((1U << UTF_ACCUMULATION_SHIFT) - 1))
+
/* The maximum number of UTF-8 bytes a single Unicode character can
* uppercase/lowercase/fold into. Unicode guarantees that the maximum
* expansion is UTF8_MAX_FOLD_CHAR_EXPAND characters, but any above-Unicode
_generic_isCC(c, _CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE)
#define UTF_CONTINUATION_MARK 0xA0
-#define UTF_CONTINUATION_MASK ((U8)0x1f)
#define UTF_ACCUMULATION_SHIFT 5
/* ^? is defined to be APC on EBCDIC systems. See the definition of toCTRL()